我有以下定义路线,
routes.MapRoute(
name: "sp",
url: "sp/{controller}/{action}/{id}",
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "pm",
url: "pm/{controller}/{action}/{id}",
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);
在运行时,我的项目的网址就像" http://example.com:7549/nhj/pm"和" http://example.com:7549/nhj/sp"
但是,当使用方法Url.Action("编辑","产品")时,Url已由方法Url生成。动作始终为"http://example.com:7549/nhj/sp/Product/Edit"
。< / p>
如何使用方法Url.Action(&#34;编辑&#34;,&#34;产品&#34;)生成两个不同的网址&#34; http://example.com:7549/nhj/pm/Product/Edit&#34 ;和&#34; http://example.com:7549/nhj/sp/Product/Edit&#34;与上述2条路线相匹配。
你能帮助我吗?感谢
答案 0 :(得分:2)
在生成网址时使用使用路径名称的Url.RouteLink()
:
// for SP route
Url.RouteUrl("sp", new { action = "Edit", controller = "Product" });
// for PM route
Url.RouteUrl("pm", new { action = "Edit", controller = "Product" });
当您使用返回的Url从操作重定向时,请使用:
// for SP route
return RedirectToRoute("sp", new { action = "Edit", controller = "Product" });
// for PM route
return RedirectToRoute("pm", new { action = "Edit", controller = "Product" });
请参阅MSDN。