我正在使用ASP.NET MVC来玩AJAX功能。我创建了一个页面,其中包含从数据库生成的类别菜单,单击该数据库时会向Controller发出AJAX请求,然后Controller返回PartialView。
<% foreach (var item in Model.Categories)
{ %>
<li>
<%= Ajax.ActionLink(item.CategoryName,
"Index", "Home",
new { id = item.CategoryID },
new AjaxOptions { UpdateTargetId = "gallery" })%>
</li>
<% } %>
[HttpPost]
public ActionResult Index(int id)
{
List<Image> images = imageRepository.getCategoryImages(id).ToList();
return PartialView("gallery", images);
}
图库div包含许多图像,在第一次加载时,它包含存储在数据库中的每个图像。我使用了lightbox一个JQuery插件,所以当点击它时,它会放大,用户可以点击图像。返回部分视图时,不再绑定灯箱事件处理程序。
$(function () {
$('#gallery a').lightBox();
});
在M $ AJAX请求完成后,是否有可能以某种方式触发Javascript函数重新绑定处理程序?
这是我打算教授自己如何使用ASP.NET MVC中的AJAX做一些很酷的事情的一系列项目的一部分。我打算在完成后在我的网站上发布代码,以便其他人可以像我一样学习。我倾向于发现JQuery有很多例子 - &gt; PHP - &gt; MySQL是开源堆栈。但是ASP.NET MVC却很少。
谢谢,
乔恩
答案 0 :(得分:2)
AjaxOptions属性之一是OnSuccess属性,它将在成功的AJAX请求之后调用一些JavaScript代码。将其值设置为JavaScript函数的名称,然后使用jQuery激活LightBox脚本。
new AjaxOptions { UpdateTargetId = "gallery", OnSuccess="ActivateLightBox" })
还有一些剧本:
<script ...>
function ActivateLightBox() {
$(function () {
$('#gallery a').lightBox();
});
}
</script>
答案 1 :(得分:0)
您有两种选择。将javascript添加到库视图中,以便在加载局部视图时运行,或者更好的解决方案是@Eilon首先使用的那个。