我们有更好的方法来处理它吗?
@foreach (var item in Model)
{
<div id="divDetail@{@item.CategoryId}"/>
@Ajax.ActionLink(
item.CategoryName,
"GetDetails",
new { id = item.CategoryId },
new AjaxOptions() { UpdateTargetId = string.Format("divDetail{0}", item.CategoryId) })
}
</div>
}
答案 0 :(得分:6)
我会使用HTML.ActionLink
辅助方法生成链接,然后使用我的自定义jQuery ajax调用来获取数据。这样做的好处是我可以完全控制,以便我可以在详细div中显示之前对响应数据进行一些操作。
我在链接中添加了一个CSS类,以便在绑定我的功能时可以更具体(在选择元素时)。
@foreach (var item in Model)
{
<div id='divDetail@(item.ID)'></div>
@Html.ActionLink(item.CategoryName, "GetDetails", new { @id = item.CategoryId}, new {@id= "link-"+item.CategoryId, @class="lnkItem" })
}
,脚本是
<script type="text/javascript">
$(function () {
$(".lnkItem").click(function (e) {
e.preventDefault();
var itemId = $(this).attr("id").split("-")[1]
$.get($(this).attr("href"), { id: itemId }, function (data) {
//i am free to do anything here before showing the data !
$("#divDetail" + itemId).html(data);
})
});
});
</script>