让我先说一下这个问题,因为我对MVC很新.
我有一个实例,我在局部视图中渲染一个devexpress网格.
@Html.Partial("MyGridPartial",Model)
我需要在通过此局部视图渲染填充模型时启动javascript函数.我试图通过这个做到这一点. :
settings.ClientSideEvents.EndCallback
我可以达到这一点,但当时我没有填充模型本身,所以没有好处.我想知道是否有人知道踢到/附加到局部视图渲染的通用方法,以便跳转到一些客户端javascript代码.
解决方法
如果您将此部分渲染为正在渲染的视图的正常流程的一部分,则答案为否.
原因是在甚至呈现父视图之前将Partial转换为字符串.此时,浏览器没有看到任何标记,也没有读取过jscript.
另一方面,如果在JQuery Ready函数中渲染了partial:
$(document).ready(function(){
我认为你需要使用Action Partial(由Action方法调用的Partial).可以通过引用url(restfully)在JQuery Ready函数中调用Action Partials:
$('#divMyGridPartial').load('/Grids/MyGridPartial/{id}');
并且可以在ready系列中调用任何后续jscript / jquery函数.
动作部分的另一个优点是,模型在动作方法中形成,并且可以根据您的需要在上下文中创建(理想情况下是通过身份转移).