C# ASP.NET MVC pass参数作为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,但当我使用以下结构时

@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}