C# 两条简单的路线不能正常工作
如何使此路线有效:C# 两条简单的路线不能正常工作,c#,asp.net-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc Routing,如何使此路线有效: routes.MapRoute( name: "Custom", url: "{modality}/{controller}/{action}/{id}", defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional } ); routes.MapRout
routes.MapRoute(
name: "Custom",
url: "{modality}/{controller}/{action}/{id}",
defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
如果我想要这个,我需要打电话:
/ModalityName/SomeController/SomeAction/SomeId
或
/SomeController/SomeAction/SomeId
但是mvc默认的第二条路线不起作用
我只需要一些时间来通知模态,这样我就可以得到一些内容,基于这些内容,路由按顺序评估是否与传入URL匹配 routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”) }
更多信息请阅读链接:我认为这是因为您已将“模态”设置为可选,而未设置其默认值。因此,当您调用
/SomeController/SomeAction/SomeId
时,它默认为第二个路由,即“默认”。并且,如果您将其设置为可选并设置其默认值,则第二个路由将永远不会被评估为第一个路由始终与url模式匹配。所以,用户必须输入url模式直到模态,这样它就不会默认为第二个路由。
routes.MapRoute(
name: "Custom",
url: "ModalityName/{controller}/{action}/{id}",
defaults: new
{
controller = "ModalityName",
action = "action",
}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional }
);