我在视图中显示了几个字段,
@foreach (var item in Model)
{
string selectedRow = "success";
if (item.ClientId == ViewBag.ClientId)
{
selectedRow = "success";
}
<tr class="@selectedRow">
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Address)
</td>
<td>
@Html.DisplayFor(modelItem => item.Number)
</td>
<td>
@Html.DisplayFor(modelItem => item.Purchases)
</td>
</tr>
我想将每个Purchases字段显示为一个链接,以重定向到包含相关信息的另一个页面。与
非常相似@Html.ActionLink("Purchases", "Purchase", new {id = item.ClientId})
但是我不知道如何正确地引用每一项。在Action Link中购买。
答案 0 :(得分:0)
不确定是什么问题-这是您要寻找的吗?
注意:我假设 Purchases
是 list
。
@for (int i = 0; i < item.Purchases.Count(); i++)
{
@Html.ActionLink("link text", "action", "controller", new { id = item.ClientId }, null)
}
答案 1 :(得分:0)
考虑将Purchases
作为控制器,并将Purchase
作为其动作,您可以使用:
@if (item.Purchases != null)
{
@Html.ActionLink(Convert.ToString(item.Purchases),"Purchase","Purchases", new {id = item.ClientId})
}
以上将解决问题。
OR
@if (!String.IsNullOrEmpty(Convert.ToString(item.Purchases)))
{
<a href='@Url.Content("~/Purchases/Purchase?id=" + item.ClientId)'>item.Purchases</a>
}
答案 2 :(得分:0)
尝试一下:
@foreach(var purchase in item.Purchases)
{
<td>
@Html.ActionLink(purchase.Name, "Purchases", "Purchase", new {id = purchase.PurchaseId})
</td>
}
答案 3 :(得分:0)
您可以在tr点击上使用jquery事件
首先,最好在tr内指定要发送的数据,如下所示:
<tr data-id="@item.ClientId"> [TDS] <tr>
然后您可以将您的jquery事件放在其他位置(在.js文件中)
$('#TableId tbody').on('click','tr', function(e){
var Id = $(this).attr('data-id');
window.location.href = "/Purchase/Purchases/id=" + Id;
});
答案 4 :(得分:0)
我要假设以下情况:“购买”是操作,“购买”是控制器,您想要单击任何字段的内容将带您到同一页面,其中包含有关以下内容的详细信息:该行中的项目(因为在给出的每个示例中都包含了ClientId)。
您需要为每个显示的字段创建一个ActionLink,如下所示:
@foreach (var item in Model)
{
string selectedRow = "success";
if (item.ClientId == ViewBag.ClientId)
{
selectedRow = "success";
}
<tr class="@selectedRow">
<td>
@Html.ActionLink(item.Name, "Purchase", "Purchases", new {id = item.ClientId }, null)
</td>
<td>
@Html.ActionLink(item.Address, "Purchase", "Purchases", new {id = item.ClientId }, null)
</td>
<td>
@Html.ActionLink(item.Number, "Purchase", "Purchases", new {id = item.ClientId }, null)
</td>
<td>
@Html.ActionLink(item.Purchases, "Purchase", "Purchases", new {id = item.ClientId }, null)
</td>
</tr>
}
此@Html.ActionLink
的重载要求htmlAttributes为空值。
如果您的数据不是字符串类型(例如item.Number),则可以使用.ToString()
。