ASP MVC中的ActionName属性是否可以使用斜杠?
e.g。我想要一条路径
MyController/MyAction1
MyController/MyAction2/A
MyController/MyAction2/B
MyController/MyAction3
这样做的原因是它模仿了用户使用的导航。但是,如果我尝试将以下内容添加到MyController
,那么它无效。
[ActionName("MyAction2/A")]
public ActionResults A() {...}
显然没有属性,它也不会起作用。
我已尝试将RouteConfig.cs
更改为
routes.MapRoute(
name: "MyController",
url: "MyController/MyAction2/{action}",
defaults: new { controller = "MyController", action = "Index" }
);
但是这会影响所有MyController路径。如何在操作名称中获得斜杠,或者让路由配置'覆盖'只有当动作是MyAction2时才会进场?
答案 0 :(得分:0)
使用Route
注释可以在MVC 5中轻松完成此操作。Enable MVC 5 Routing
博客示例:
[Route(“books/lang/{lang=en}”)]
public ActionResult ViewByLanguage(string lang)
{
return View(“OneBook”, GetBooksByLanguage(lang));
}