MVC 操作作为不带控制器的单一路由

本文关键字:控制器 单一 路由 操作 作作 MVC | 更新日期: 2023-09-27 18:37:07

我有一些控制器,我只想将操作显示为路由。首先,我得到Home/Start.我只喜欢展示/Start.对于Contact也是如此。它只能通过路由配置进行更改还是有属性?

public class HomeController : Controller
{
    public ActionResult Start()
    {
        return View();
    }
    public ActionResult Contact()
    {
        return View();
    }
    public ActionResult Impress()
    {
        return View();
    }
}

MVC 操作作为不带控制器的单一路由

路由

配置是执行此操作的唯一方法,方法如下

首先,定义所有非主控制器路由,如下所示:

routes.MapRoute(
    "Account", // Route name
    "Account/{action}/{id}", // URL with parameters
    new { controller = "Account", action = "Index", id = UrlParameter.Optional } // Parameter     defaults
);
routes.MapRoute(
    "Admin", // Route name
    "Admin/{action}/{id}", // URL with parameters
    new { controller = "Admin", action = "Index", id = UrlParameter.Optional } // Parameter     defaults
);

然后在所有这些之后,定义默认路由,如下所示:

routes.MapRoute(
    "Default", // Route name
    "{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter     defaults
);

使用 AttributeRouting。

您只需要在操作之前放置一个带有操作名称的属性:

    [HttpGet]
    [Route("Get")]
    public ViewAction Get(long id)
    {
        return;
    }