我的模型中有一个字符串Data,可能很长。我试图获取前150个字符,然后使其可点击,当点击链接时,新的div应显示整个消息。下面我使用标签,但我不知道如何给它一个唯一的ID,并让它存储我的item.Data。
有人能帮助我一些想法吗?
@foreach (var item in Model) {
<div class="row">
<div class="col-md-1">
@Html.DisplayFor(modelItem => item.Level)
</div>
<div class="col-md-2">
@Html.DisplayFor(modelItem => item.Source)
</div>
<div class="col-md-1">
@Html.DisplayFor(modelItem => item.Date)
</div>
<div class="col-md-5">
<a ID="?">@Html.DisplayFor(modelItem => item.Data).ToString().Substring(0, 150) ...</a>
</div>
<div class="col-md-1">
@Html.DisplayFor(modelItem => item.Count)
</div>
</div>
}
答案 0 :(得分:2)
基本上,你只需要这样的东西:
<a class="show-data" href="#AllData">
@item.Data.Substring(0, 150)
</a>
<div id="#AllData" style="display:none">
@item.Data
</div>
然后,有点JS:
$('.show-data').on('click', function () {
$($(this).attr('href')).toggle();
});
请注意,为了简化示例,我只为div分配了AllData
的id。由于这是在foreach循环中,因此您需要使用某些东西来使每个id唯一。这可能是项目的ID,或者您可以使用for
循环而不是foreach
,然后使用索引。一定要确保链接的href
和div的id
匹配,并且对于该页面是唯一的。
答案 1 :(得分:1)
<a href="@Url.Action("YourControllerActionResultName", new { id=item.Data})">@Html.DisplayFor(modelItem => item.Data).ToString().Substring(0, 150) </a>