C# 将ID传递给URL,ASP.NET MVC

C# 将ID传递给URL,ASP.NET MVC,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我正在尝试向URL传递id,但是我无法硬编码id,但我需要从模型传递id 它基本上是以表格形式显示的特定类型模型的集合。 当用户单击表的id值时,我需要能够将id传递给URL,以便它能够打开相应的详细页面 <a href="~/Instance/Details/id=@Url.Encode(modelitem => item.Id)"> @Html.DisplayFor(modelitem => item.Id)</a> 这就是我正在尝试的,需要帮助

我正在尝试向URL传递id,但是我无法硬编码id,但我需要从模型传递id

它基本上是以表格形式显示的特定类型模型的集合。 当用户单击表的id值时,我需要能够将id传递给URL,以便它能够打开相应的详细页面

<a href="~/Instance/Details/id=@Url.Encode(modelitem => item.Id)">   @Html.DisplayFor(modelitem => item.Id)</a>


这就是我正在尝试的,需要帮助:)。

首先,使用
Url.Action
方法生成操作方法的正确相对Url

@foreach (var item in SomeCollection)
{
  <div>
       <a href="@Url.Action("Details","Instance",new { id = item.Id })"> 
                                            @Html.DisplayFor(modelitem => item.Id)
       </a>
  </div>
}

首先,使用
Url.Action
方法生成操作方法的正确相对Url

@foreach (var item in SomeCollection)
{
  <div>
       <a href="@Url.Action("Details","Instance",new { id = item.Id })"> 
                                            @Html.DisplayFor(modelitem => item.Id)
       </a>
  </div>
}

modelitem=>item.Id
这看起来是错误的。它不应该是
modelitem=>modelitem.Id
modelitem=>item.Id
这看起来不对。它不应该是
modeleItem=>modeleItem.Id
new{Id=item.Id}
可能应该是
new{Id=Model.Id}
@lewsterin他在一个集合中做这件事。因此,它应该是循环当前正在执行的项,即
item.Id
@Sam Axe我更新了您的编辑。因为它是一个循环,所以应该是
modelitem=>item.Id
。如果使用
modelitem=>modelitem.Id
,则它无效。你会从razor那里得到一个错误。哦,好吧,我错过了。谢谢更新您的答案。
modelitem=>item.Id
对我来说仍然没有任何意义。输入变量
modelitem
未在该lambda表达式中使用。它不应该仍然是
modelitem=>modelitem.Id
?在计算lambda表达式时,
item
不会被传递到
modelitem
输入参数吗?
new{id=item.id}
可能应该是
new{id=Model.id}
@lewsterin,因为他正在集合中执行此操作。因此,它应该是循环当前正在执行的项,即
item.Id
@Sam Axe我更新了您的编辑。因为它是一个循环,所以应该是
modelitem=>item.Id
。如果使用
modelitem=>modelitem.Id
,则它无效。你会从razor那里得到一个错误。哦,好吧,我错过了。谢谢更新您的答案。
modelitem=>item.Id
对我来说仍然没有任何意义。输入变量
modelitem
未在该lambda表达式中使用。它不应该仍然是
modelitem=>modelitem.Id
?在计算lambda表达式时,
item
不会被传递到
modelitem
输入参数吗?