Asp.net mvc 带有2个参数的MVC Url.Action
在我的控制器中,我传递了两个参数,如下所示:Asp.net mvc 带有2个参数的MVC Url.Action,asp.net-mvc,model-view-controller,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 我喜欢
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
我喜欢它表现为:
如何修改UrlAction以这种方式显示 您可以在
Global.asax
中修改默认路由注册,以便{id}
标记不是URL的一部分。删除它或其他东西。您可以在Global.asax
中修改您的默认路由注册,以便{id}
标记不是URL的一部分。把它或什么东西拿走。我相信达林是正确的
要获得所需的URL,只需保持URL生成代码相同即可
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)
我相信达林是正确的 要获得所需的URL,只需保持URL生成代码相同即可
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)
@Darvin Dimitrov-如何修改上面示例中的Url.Action,使其显示出来,因为这将为我提供绝对路径。感谢you@NatePet,您不能修改Url.Action。它是ASP.NETMVC框架的一部分。正如我在回答中所说的,修改您的路由,因为Url.Action方法就是用它来生成这些Url的。@Darvin Dimitrov-我如何修改上面示例中的Url.Action,使其显示出来,因为这将为我提供绝对路径。感谢you@NatePet,您不能修改Url.Action。它是ASP.NETMVC框架的一部分。正如我在回答中所说的,修改您的路由,因为Url.Action方法就是用它来生成这些Url的。