如何使用连字符实现 asp.net mvc 动作名称,例如,家庭控制器中的动作名称在www.domain.com/about-us
哪里。about-us
使用这种方法,我可以实现具有类似contact-us
、how-to
等的动作名称。
问问题
3771 次
4 回答
10
您可以在actionName
标签内提供您的操作名称。
[ActionName("about-us")]
public ActionResult AboutUs() {
return View();
}
于 2013-09-03T07:52:52.407 回答
10
这是 .Net MVC 5 项目问题的完整解决方案:
打开项目的App_Start/RouteConfig.cs文件。
在您的RegisterRoute方法上,修改如下代码:
public static void RegisterRoutes(RouteCollection routes) { routes.MapMvcAttributeRoutes(); // <--- add this line to enable custom attribute routes routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }
现在,打开您的控制器文件,然后在您的操作顶部添加自定义路由的定义,如下所示:
[Route("about-us")] public ActionResult AboutUs() { return View(); }
您现在应该可以像这样使用您的自定义路由:
http://yourdomain.com/about-us
于 2015-10-20T16:27:47.463 回答
0
在AreaRegistration.cs
文件中,您可以添加路由表条目,如下所示......
context.MapRoute(
"about_us_default",
"about-us",
new { action = "AboutUs" }
);
于 2013-09-03T09:14:11.387 回答
0
在 MVC5 中,您也可以设置属性路由:
[Route("about-us")]
public ActionResult AboutUs()
{
return View();
}
于 2015-06-16T13:32:07.047 回答