【发布时间】:2019-05-12 11:48:03
【问题描述】:
我在以下两个控制器中使用属性路由时遇到了一个奇怪的错误:
[Route("{action=Index}")]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
[RoutePrefix("search")]
[Route("{action=Index}")]
public class SearchController : Controller
{
public ActionResult Index(string searchTerm)
{
return View();
}
}
在路由配置中:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
如你所见,第二个控制器应该有一个搜索前缀
但是,如果我去 dev.local/search?searchterm=test
我得到了错误
请求找到了以下匹配的控制器类型: Marshalls.WebComponents.Web.Controllers.SearchController Marshalls.WebComponents.Web.Controllers.HomeController
如果我从主控制器中删除[Route("{action=Index}")],它会正常工作,但是我无法使用http://dev.local/ 访问主页
这种情况以前没有发生过,通常工作正常,所以我想知道是否有人能发现我搞砸的任何明显的事情
【问题讨论】:
标签: c# asp.net-mvc routes attributerouting