【发布时间】:2017-01-16 16:27:54
【问题描述】:
我正在尝试配置基于常规和基于属性的路由。
如果我只使用 MVC 中包含的默认常规路由,一切正常。但是如果我添加这个 Route 属性,我会得到一个 404。
这里是 GET 请求 URL:http://localhost:52386/Home/SimpleSearch?searchTerms=test&dateRange=0
这是我在代码中的 RouteAttributes:
[RoutePrefix("Home")]
public class HomeController : Controller
{
[Route("SimpleSearch/{searchTerms}/{dateRange}/{page?}")]
[HttpGet]
public ActionResult SimpleSearch(string searchTerms, DateRangeEnum dateRange, int page = 1)
{
//Code here
}
}
Route Config 也是这样的:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
//Default
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
我看不出这个 RouteAttribute 有什么问题,但即使它有问题,为什么它不回退到默认的常规 Route 并工作?
【问题讨论】:
标签: c# asp.net asp.net-mvc routing url-routing