我想为我的asp.net mvc应用程序自定义URL。目前我正在开发asp.net MVC 4.5
案例:1
Current URL : localhost/Country/Index/param1
Expected URL : localhost/param1
案例:2
Current URL : (1) localhost/Country/Index/param1 (Param1 is name of country)
(2) localhost/State/Index/param11 (param11 is name of state)
Expected URL : localhost/param1/param11 (I need second url like this.)
提前完成。
答案 0 :(得分:0)
ASP.net MVC根据路由处理请求。路由适用于从路由表中获取的数据。所以基本上你必须至少拥有控制器和action.But mvc为我们提供了更改URL的选项,如下所示:
routes.MapRoute(
name: "Test",
url: "myURl/{param1}",
defaults: new { controller = "myURl", action = "actualActionName", id = UrlParameter.Optional }
);
MVC5中的可以通过属性路由完成。
答案 1 :(得分:0)
要获得结果,只需为每个事件创建单独的路由器。
目前您可能正在使用下面的默认路线。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
或尝试创建一些不同的路线。
我的建议是为每个事件创建单独路线。 喜欢 : 使用param1和param11创建一个路径以获得所需的结果。
routes.MapRoute(
name: "Default",
url: "param1/param11",
defaults: new { controller = "param1", action = "param11", id = UrlParameter.Optional }
);
同样为另一个事件和方法创建。