【发布时间】:2017-02-16 10:02:31
【问题描述】:
我的 MVC 项目中的路由出现问题...
我希望Views > Shared 文件夹中的所有视图都像这样:
Error.cshtml(默认)
Index.cshtml(默认)
Overview.cshtml(我自定义的)
Recordings.cshtml(我定制的)
然后我创建了一个共享控制器来处理所有视图,如下所示:
public class SharedController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Error()
{
return View();
}
public ActionResult Overview()
{
return View();
}
public ActionResult Recordings()
{
return View();
}
}
我的RouteConfig.cs 看起来像这样:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Map to specific pages under Shared controller:
routes.MapRoute("SharedPages", "{action}/{id}",
new { controller = "Shared", action = @"Overview|Recordings", id = UrlParameter.Optional });
// Use the default rout for all other pages:
routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "Shared", action = "Index", id = UrlParameter.Optional }
);
// Show the Error page for anything else (404):
routes.MapRoute("Error", "{*url}",
new { controller = "Shared", action = "Error" }
);
}
我希望路由像这样工作:
://(url)/(root - 未指定操作)--> Shared/Index.cshtml
://(url)/Index --> Shared/Index.cshtml
://(url)/Overview --> Shared/Overview.cshtml
://(url)/Recordings --> Shared/Recordings.cshtml
://(url)/whatever(或者如果发生错误)--> Shared/Error.cshtml
但它没有按预期工作。如果我去://(url)/(root),我会得到一个HTTP 404 - The resource cannot be found. 如果我去例如://(url)/Overview,它工作正常。
我怎样才能让它像我想要的那样工作?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-routing