在mvc中部分渲染后脚本没有执行,为什么?

时间:2012-03-03 13:56:14

标签: c# jquery asp.net-mvc

我使用mvc 4.0来开发我的Web应用程序,我创建了一个页面管理器和数据列表它工作正常,我通过一些jquery代码实现它,我定义$ .get jquery方法来获取部分视图作为新页面像这个:

$.get("http://localhost:13824/bid/index?page=8&script=1", function(data) {
         $Element.html(data);
}

在控制的另一面我有如下的Action方法:

public ActionResult Index(string provinceNo="21", int page=1, string script="0"){
    if(script=="1") { return PartialView("mypartialwebusercontrol",model); }
    else // do something else;
}

在Web用户控件中我有一些项目它加载所有项目,我的寻呼机工作非常好,但有一个问题我在每个项目链接打开一个弹出窗口,当我点击它调用$ .get方法。所有点击事件和脚本都不会再次上升。

我的网络用户控件是这样的:

<% control language="c#" inherits="system.web.mvc.viewusercontrol<model>" %>
<% foreach(var item in model) { %>
<div id="card1">
  <a class="linkbutton"> item.text1 </a>
</div>
<% } %>

所有点击脚本将在$ .get方法调用后停止。

1 个答案:

答案 0 :(得分:0)

仍然不确定'在构造函数中'是什么意思,但我可以看到问题的两个可能原因:

  • 一,在加载html之前运行绑定,因此linkBut​​tons没有绑定。解决方案是在加载后运行绑定,或者更好的是,在要加载的容器上使用.delegate。
  • 二,当浏览器运行$ .get方法或之后的任何javascript时,它会遇到错误并停止执行更多脚本。

如果不是这些,您需要提供您的Javascript的完整列表或指向我或其他人可以确切了解正在发生的事情的页面的链接