我试图在我的应用程序中创建外观漂亮的URL,但是当我使用以下构造时
@Url.Action("Edit", "Account", new { userId = user.Id })
我有下一个参考mysite.com/Account/Edit?userId=42
。
如何获取类似mysite.com/Account/Edit/42
的网址?
答案 0 :(得分:4)
在App_Start
文件夹下的项目中,您将拥有一个名为RouteConfig.cs
的文件,您可以在此处为应用程序指定自定义路由。
默认情况下,您将拥有以下
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
如果您执行了Url.Action("Edit", "Account", new {id = user.Id})
如果您希望在不希望将userId
更改为id
的情况下适应您的规则,则可以按如下方式创建一个规则:
routes.MapRoute(
name: "EditRule",
url: "{controller}/{action}/{userId}",
defaults: new { controller = "Edit", action = "Account", userId = UrlParameter.Optional }
);
注意:自定义规则应出现在默认规则之前,否则将触发默认规则
答案 1 :(得分:1)
使用
userId
如果您已在Id
和**controller method**
**model logic**
并将url
更改为$this->load->helper('url');
`