假设我有一个以这样开头的表:
@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>
答案 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
参数,还应该接受此字符串。您应该通过Model
或ViewBag
/ ViewDictionary
将此字符串传递给您的视图。