我有這些路由定義工作:此自定義路線不MVC5
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "InboxToCompose",
url: "Asistencia/Mensajeria/Componer/{origen}",
defaults: new { controller = "Mensajeria", action = "Componer", area = "Asistencia" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
路線「InboxToCompose」應該映射到這個方法:
// GET: /Asistencia/Mensajeria/Componer/origen
public ActionResult Componer(string origen)
{
}
這種方法被放置在「Mensajeria」控制器在「Asistencia」地區。
當我打電話有鑑於此:
Url.Action("Componer", "Mensajeria", new { area = "Asistencia", origen = "Inbox" })
生成的URL是
/Asistencia/Mensajeria/Componer?origen=Inbox
這樣的話,我可以看到,「奧利」參數填充值「收件箱」時,該方法調用。
不過,我希望它只是
/Asistencia/Mensajeria/Componer/Inbox
如果我使用的URL在瀏覽器中調用該方法,但與「奧利」參數等於空。
對此有何建議?
如果你有區域,您需要在您的'RouteConfig'文件,然後註冊。參考[這個問題/答案](https://stackoverflow.com/questions/13454699/how-to-register-areas-for-routing)舉例 –