【发布时间】:2015-05-20 13:05:06
【问题描述】:
标准 MVC 5 模板。
所以我试图理解并创建一个命名路由,如下所示:
<a href="@Url.RouteUrl(routeName: "myroute", routeValues: new { code = "123" })">this link</a>
在 Home 控制器中:
[Route("Home/DoIt", Name = "myroute"), HttpGet]
public ActionResult DoIt(string code)
{
return View();
}
MvcAttributeRouting 当然是在 RoutConfig.cs 中启用的:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapMvcAttributeRoutes();
}
因为如果未启用,则会得到:
在路由集合中找不到名为“myroute”的路由。 参数名称:名称
但我得到了:
找不到资源。说明:HTTP 404。你的资源 正在寻找(或其依赖项之一)可能已被删除, 已更改名称,或暂时不可用。请查阅 以下 URL 并确保其拼写正确。
请求的 URL:/Home/DoIt
我做错了什么?
编辑:显然,我在 Route 属性上做错了,因为即使这样也不起作用:
[Route("DoIt")]
或
[Route("Home/DoIt")]
无论请求 URL 是 http://localhost/Home/DoIt 还是 http://localhost/DoIt,两者都给我 404
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-5 url-routing asp.net-mvc-routing attributerouting