我想在我的网址中用破折号分隔单词。所以而不是:
/MyController/MyAction
我想要:
/My-Controller/My-Action
这可能吗?
您可以像这样使用 ActionName 属性:
[ActionName("My-Action")]
public ActionResult MyAction() {
return View();
}
请注意,您将需要调用您的视图文件“My-Action.cshtml”(或适当的扩展名)。您还需要在任何 Html.ActionLink 方法中引用“my-action”。
对于控制器来说没有这样简单的解决方案。
编辑:MVC5 更新
启用全局路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapMvcAttributeRoutes();
// routes.MapRoute...
}
现在有了MVC5,属性路由已经被吸收到项目中。您现在可以使用:
[Route("My-Action")]
论行动方法。
对于控制器,您可以应用RoutePrefix
属性将应用于该控制器中的所有操作方法:
[RoutePrefix("my-controller")]
使用的好处之一RoutePrefix
URL 参数也将被传递到任何操作方法。
[RoutePrefix("clients/{clientId:int}")]
public class ClientsController : Controller .....
Snip..
[Route("edit-client")]
public ActionResult Edit(int clientId) // will match /clients/123/edit-client
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)