点击动作链接后,如何引用它的linkText?

时间:2016-03-29 14:44:36

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

假设我有一个以这样开头的表:

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.ActionLink(item.Name, "Things", new { someId = item.Id})
        </td>

这需要我对该特定项目的观点。一旦我进入那个单独的.cshtml文件,我该如何引用原来的&#34; item.Name&#34;出现在这个ActionLink中的字符串?

*解决方案编辑*

解决方案最终看起来像这样。

ActionLink:

@Html.ActionLink(item.Name, "Things", new { someId = item.Id, someName = item.Name})

行动:

public ActionResult Things(Guid? someId, string someName)
...
ViewBag.currentName = someName;

另一个观点:

<h2>@ViewBag.currentName</h2>

2 个答案:

答案 0 :(得分:2)

您可以使用项目名称添加额外参数

@Html.ActionLink(item.Name, "Things", new { someId = item.Id, name = item.Name})

对于这种方法,您还需要修改控制器和型号。

答案 1 :(得分:1)

我认为你不必参考第一个ActionLink论点。您可能感兴趣的是此视图的Model对象。单击该链接后,您将导航到您传递当前模型对象的someId - id的操作。那么您可能应该在存储中找到id的对象。它将具有.Name属性,用作ActionLink参数。

但是,如果您只需要用作ActionLink中第一个参数的完全相同的字符串,它可以是任何字符串,您应该在路由值中复制它。您的Things操作不仅应该接受someId参数,还应该接受此字符串。您应该通过ModelViewBag / ViewDictionary将此字符串传递给您的视图。