【发布时间】:2011-11-22 11:50:23
【问题描述】:
我有以下使用 ASP.NET MVC2 的场景
我有一个部分视图,它使用 Ajax.BeginForm 来允许部分回发,AjaxOptions 的 OnSuccess 属性指向 js 函数 onPartialReloadSuccess。 updateTargetId 位于 BeginForm 脚本中引用的父视图“应用程序”中。
这个局部视图本身会渲染许多其他局部视图,它们的名称是根据模型动态生成的
<% using (Ajax.BeginForm("Application", new AjaxOptions { UpdateTargetId = "mainframe", OnSuccess = "onPartialReloadSuccess" })) { %>
<div id="breadcrumbs">
<% Html.RenderPartial(Model.Breadcrumbs, Model);%>
</div>
<div id="action">
<% Html.RenderPartial(Model.CurrentView, Model);%>
</div>
<% } %>
我的问题如下 - 在部分回发后,'onPartialReloadSuccess' js 函数被成功调用而没有问题,但是子视图中包含的所有 javascript 都没有重新运行。 p>
它们最初设置为在 jQuery $(document).ready() 之后运行...这显然不适用于部分回发
我的问题是 - 有没有办法确保这些重新渲染的部分视图上的 javascript 运行?我看到很多针对 asp.net 表单的解决方案(使用 scriptmanager 和 PageRequestManager),但没有针对 ASP.NET MVC 的特定解决方案?
提前感谢您的帮助
【问题讨论】:
-
在 ASP.NET MVC 3 中无法使用 OOTB,因为它使用 jQuery AJAX(在加载的内容中神奇地运行 JS)?那么也许使用 jQuery AJAX 也是您的一个选择。
标签: javascript jquery asp.net-mvc