MVC HTML Action Link帖子ID

时间:2015-11-03 09:28:22

标签: c# asp.net asp.net-mvc razor actionlink

我有一个技能列表,我希望显示代言人,为此我决定使用HTML Action Link发布ID,然后检索另一个DIV类中的代言人:

将显示所有技能作为超链接的div类:

 <div class="skill">
 @foreach (var skl in model.userskills)
 {
 @Html.ActionLink(@skl.userskill_content , "Index" , "Home" , new  {skl.userskill_id} , null);
 </div>

显示所有代言人的div类:

<div class="endorsers">
@foreach (var skill in model.endorsers)
{
@skl.user_forename  @skil._user_surname
}
</div>

如何将'new {skl.userskill_id}'传递给控制器​​,这样每个代言人都能根据这个特定的userskill_id?因此,如果我点击此超链接“C#”技能,它将根据“C#”的ID加载代言人列表。

我希望这很清楚。谢谢

2 个答案:

答案 0 :(得分:1)

您需要在参数前添加id=

 @Html.ActionLink(@skl.userskill_content ,   
 "Index" , "Home" , new  {id = skl.userskill_id} , null);

您还必须确保控制器操作是HTTP get,因为ActionLink将调用此方法,并确保您的控制器参数匹配,即

public ActionResult AnAction(int id)

答案 1 :(得分:0)

您需要在参数前添加Parametername =。比如动作参数名称 Id 而不是

  @Html.ActionLink(@skl.userskill_content ,   
         "Index" , "Home" , new  {id = skl.userskill_id} , null);

OR

  @Html.ActionLink(@skl.userskill_content ,   
         "Index" , "Home" , new  {parameterName= skl.userskill_id} , null);

传递同名参数。你已经在控制器动作中定义了。