C# ASP.NET MVC pass参数作为url的一部分
我试图在我的应用程序中创建外观良好的URL,但当我使用以下结构时C# ASP.NET MVC pass参数作为url的一部分,c#,html,asp.net-mvc,hyperlink,routing,C#,Html,Asp.net Mvc,Hyperlink,Routing,我试图在我的应用程序中创建外观良好的URL,但当我使用以下结构时 @Url.Action("Edit", "Account", new { userId = user.Id }) 我有下一个参考mysite.com/Account/Edit?userId=42 如何获取类似于mysite.com/Account/Edit/42的url?使用 @Url.Action(“编辑”、“帐户”,新的{Id=user.Id}) 如果在**控制器方法**和**模型逻辑** `在项目中的App\u Start
@Url.Action("Edit", "Account", new { userId = user.Id })
我有下一个参考mysite.com/Account/Edit?userId=42
如何获取类似于mysite.com/Account/Edit/42的url?使用
@Url.Action(“编辑”、“帐户”,新的{Id=user.Id})
如果在
**控制器方法**
和**模型逻辑**
`在项目中的
App\u Start
文件夹下,您将有一个名为RouteConfig.cs
的文件,您可以在这里为应用程序指定自定义路由
默认情况下,您将具有以下内容
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
如果您执行类似于Url.Action(“编辑”、“帐户”、新建{id=user.id})
如果您想适应您不想将
userId
更改为id
的规则,则可以按如下方式创建一个:
routes.MapRoute(
name: "EditRule",
url: "{controller}/{action}/{userId}",
defaults: new { controller = "Edit", action = "Account", userId = UrlParameter.Optional }
);
注意:自定义规则应出现在默认规则之前,否则将命中默认规则将
userId
更改为id
,然后它将命中默认路径{controller}/{action}/{id}