MVC Action 作为没有控制器的单路由
MVC Action as singleroute without controller
我有一些控制器,我只想将动作显示为路线。首先我得到 Home/Start
。我喜欢只显示 /Start
。对于 Contact
也是如此。它只能通过路由配置更改还是有属性?
public class HomeController : Controller
{
public ActionResult Start()
{
return View();
}
public ActionResult Contact()
{
return View();
}
public ActionResult Impress()
{
return View();
}
}
路由配置是唯一的方法,方法如下
首先,像这样定义所有非家庭控制器路由:
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
);
使用属性路由。
您只需要在操作之前放置一个带有操作名称的属性即可:
[HttpGet]
[Route("Get")]
public ViewAction Get(long id)
{
return;
}
我有一些控制器,我只想将动作显示为路线。首先我得到 Home/Start
。我喜欢只显示 /Start
。对于 Contact
也是如此。它只能通过路由配置更改还是有属性?
public class HomeController : Controller
{
public ActionResult Start()
{
return View();
}
public ActionResult Contact()
{
return View();
}
public ActionResult Impress()
{
return View();
}
}
路由配置是唯一的方法,方法如下
首先,像这样定义所有非家庭控制器路由:
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
);
使用属性路由。
您只需要在操作之前放置一个带有操作名称的属性即可:
[HttpGet]
[Route("Get")]
public ViewAction Get(long id)
{
return;
}