单击操作链接后,如何返回其链接文本?
After clicking on an actionlink, how do I reference back to its linkText?
假设我有一个 table 开头是这样的:
@foreach (var item in Model)
{
<tr>
<td>
@Html.ActionLink(item.Name, "Things", new { someId = item.Id})
</td>
它会将我带到该特定项目的视图。一旦我进入那个单独的 .cshtml 文件,我如何才能引用回出现在这个 ActionLink 中的原始 "item.Name" 字符串?
* 解决方案编辑 *
解决方案最终看起来像这样。
动作链接:
@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>
您可以添加一个带有项目名称的额外参数
@Html.ActionLink(item.Name, "Things", new { someId = item.Id, name = item.Name})
您还需要为这种方法修改您的控制器和模型。
我认为您不必参考第一个 ActionLink
参数。您可能感兴趣的是这个视图的 Model
对象。当您单击 link 时,您将导航到传递当前模型对象的 someId
- id
的操作。那么你可能应该在你的存储中通过它的 id
找到一个对象。它将有 .Name
属性 用作 ActionLink
参数。
但是,如果您只需要与在 ActionLink
中用作第一个参数的字符串完全相同,它可以是任何字符串,您应该在路由值中复制它。您的 Things
操作不仅应该接受 someId
参数,还应该接受此字符串。在您应该通过 Model
或 ViewBag
/ViewDictionary
将此字符串传递到您的视图之后。
假设我有一个 table 开头是这样的:
@foreach (var item in Model)
{
<tr>
<td>
@Html.ActionLink(item.Name, "Things", new { someId = item.Id})
</td>
它会将我带到该特定项目的视图。一旦我进入那个单独的 .cshtml 文件,我如何才能引用回出现在这个 ActionLink 中的原始 "item.Name" 字符串?
* 解决方案编辑 *
解决方案最终看起来像这样。
动作链接:
@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>
您可以添加一个带有项目名称的额外参数
@Html.ActionLink(item.Name, "Things", new { someId = item.Id, name = item.Name})
您还需要为这种方法修改您的控制器和模型。
我认为您不必参考第一个 ActionLink
参数。您可能感兴趣的是这个视图的 Model
对象。当您单击 link 时,您将导航到传递当前模型对象的 someId
- id
的操作。那么你可能应该在你的存储中通过它的 id
找到一个对象。它将有 .Name
属性 用作 ActionLink
参数。
但是,如果您只需要与在 ActionLink
中用作第一个参数的字符串完全相同,它可以是任何字符串,您应该在路由值中复制它。您的 Things
操作不仅应该接受 someId
参数,还应该接受此字符串。在您应该通过 Model
或 ViewBag
/ViewDictionary
将此字符串传递到您的视图之后。