建立一个模型的链接

时间:2015-08-13 14:21:23

标签: javascript c# asp.net-mvc

我的模型中有一个字符串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>
            }

2 个答案:

答案 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>