C# 在MVC视图中创建ActionLink

C# 在MVC视图中创建ActionLink,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我是MVC的新手,所以请原谅我可能使用了不正确的术语 在我的MVC应用程序的RouteConfig.cs文件中,有以下routes.MapRoute:- routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

我是MVC的新手,所以请原谅我可能使用了不正确的术语

在我的MVC应用程序的RouteConfig.cs文件中,有以下routes.MapRoute:-

  routes.MapRoute(
     name: "Default",
     url: "{controller}/{action}/{id}",
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
   );
关键是:-

url: "{controller}/{action}/{id}"
因此,我以创建ActionLink为例,在我的默认应用程序模板中创建了ActionLink,并拼凑了以下几行:-

<p>@Html.ActionLink("portfolio details", "Detail", "Portfolio", new { portfolioId = portfolio.PortfolioId } , new { @class = "btn btn-default" })</p>
如果不希望ID位于QueryString参数中,如何创建链接以匹配routes.MapRoute中预期的模式,从而获得URL链接,如:-


假设控制器操作具有参数
id
,则可以执行以下操作:

<p>@Html.ActionLink("portfolio details", "Detail", "Portfolio", new { id = portfolio.PortfolioId } , new { @class = "btn btn-default" })</p>
这将把
174198
作为
id
参数传递给控制器操作。

您可以使用这种方式

<p>@Html.ActionLink("portfolio details", string.Format("Detail/{0}", portfolio.PortfolioId ), "Portfolio", null, null)</p>
@Html.ActionLink(“公文包详细信息”,string.Format(“详细信息/{0}”,公文包.PortfolioId),“公文包”,null,null)


@Html.ActionLink(“公文包详细信息”,“详细信息”,“公文包”,新的{portfolio.PortfolioId},新的{@class=“btn btn default”})

试试这个谢谢,看起来很乱,当我第一次尝试将id连接到一个字符串时(在发布之前)我只能假设你被记下来是因为你的语法错误,在这个解决方案给了我我想要的答案之前。
http://localhost:xxxxx/Portfolio/Detail/174198
<p>@Html.ActionLink("portfolio details", string.Format("Detail/{0}", portfolio.PortfolioId ), "Portfolio", null, null)</p>