MVC Url.Action有2个参数

时间:2011-12-13 21:58:17

标签: asp.net-mvc model-view-controller

我在控制器中有以下两个参数:

    url = Url.Action("ViewReq ", "ProgramT ", new   System.Web.Routing.RouteValueDictionary(new { id = spid pgid = pid }), "http", Request.Url.Host);

当我查看它时,它显示为:

    http://localhost/Masa/ProgramT/ViewReq/20036?pgid=00001

我喜欢它显示为:

http://localhost/Masa/ProgramT/ViewReq?id=20036&pgid=00001

如何修改UrlAction以这种方式显示?

2 个答案:

答案 0 :(得分:3)

您可以在Global.asax中修改默认路由注册,以便{id}令牌不属于您的网址。删除它或其他东西。

答案 1 :(得分:2)

我相信达林是正确的。

要获取所需的网址,只需保持您的网址生成代码相同

Url.Action("ViewReq ", "ProgramT ", new   System.Web.Routing.RouteValueDictionary(new { id = spid, pgid = pid }), "http", Request.Url.Host);

然后在Global.asax文件中,在默认路由下添加以下路由。

 routes.MapRoute(
       "YourNewRoute", // Route name
       "ProgramT/ViewReq/{id}/{pgid}", // URL with parameters
       new { controller = "ProgramT", action = "ViewReq",  id = UrlParameter.Optional, pgid = UrlParameter.Optional  } // Parameter defaults
   );

然后,您应该将URL视为(假设id为20036,pgid为00001)

http://localhost/Masa/ProgramT/ViewReq/20036?pgid=00001