如何在asp.net mvc中自定义Url

时间:2017-03-18 04:00:48

标签: asp.net-mvc asp.net-mvc-routing

我想为我的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.)

提前完成。

2 个答案:

答案 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 }
);

同样为另一个事件和方法创建。