目前我的网址如下:
http://localhost:9737/ProfileEdit?writerId=4
但我希望它是这样的:
http://localhost:9737/ProfileEdit/4
这是我的行动签名:
public ActionResult ProfileEdit(long writerId)
我尝试在RouteConfig文件中添加新路由,如下所示:
routes.MapRoute(
name: "ProfileEdit",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "ProfileEdit", writerId = UrlParameter.Optional }
);
但没有运气..所以如何更改网址格式?
答案 0 :(得分:5)
路由将参数定义为id
:
url: "{controller}/{action}/{id}"
但您正在使用writerId
:
http://localhost:9737/ProfileEdit?writerId=4
更改路线以匹配:
url: "{controller}/{action}/{writerId}"
请注意,这将有助于对使用该路由的每个网址进行此更改。
答案 1 :(得分:3)
您可以添加路线属性:
[Route("ProfileEdit/{writerId}")]
public ActionResult ProfileEdit(long writerId)
答案 2 :(得分:1)
您有两种方法:
更改路线值以匹配操作
url: "{controller}/{action}/{writerId}"
中参数的名称。- 醇>
执行相反操作并更改操作中的参数名称以匹配路线值
public ActionResult ProfileEdit(long id)
修改强>
如果您想要多个参数相同,您还需要在路线中指定它们:
routes.MapRoute( "ProfileEdit", "{controller}/{action}/{writerId}/{otherParameter}", new { controller = "Home", action = "ProfileEdit", writerId = "", otherParameter = "" });
答案 3 :(得分:0)
routes.MapRoute(
name: "ProfileEdit",
url: "ProfileEdit/{id}",
defaults: new { controller = "Home", action = "ProfileEdit"}
);