异步加载的部分视图脚本初始化

时间:2012-06-13 15:06:54

标签: javascript jquery ajax asp.net-mvc partial

在ASP.NET MVC 3站点的控制面板网页上,用户可以看到他现有的项目(它是设计师组合的站点),并且可以按一个按钮将新项目添加到库中。

在部分视图剃刀代码中引用了此特定“项目添加功能”的标记和javascript依赖项。

每当用户单击页面上的按钮时,我都会检索局部视图的内容并将它们放在页面底部并在生成的div上调用jQuery UI .dialog以显示项目编辑/添加弹出窗口。

但是如何调用逻辑来初始化验证和其他逻辑(例如点击处理程序),这些逻辑引用了这个局部视图内容中的元素? (由于这个原因,我不能只在文件准备就绪时初始化所有内容)

我是否只是在链接的js(例如initProjectEditing())中对某些函数进行硬编码,并从初始化弹出窗口的代码中调用它,还是有更优雅的方法呢?

1 个答案:

答案 0 :(得分:0)

恕我直言,好方法是使用Jquery widget 。这件事允许  您可以在一个位置为组件定义逻辑,然后重复使用它  随时随地。

  • 您可以创建“添加新项目”Jquery小部件。

  • 在此小部件中定义与“添加新项目”相关的所有功能 (验证,事件处理程序等)

  • 参考所需的所有javascripts 用于直接从主视图“添加新项目”而不是在局部视图中 就像你现在一样。您可以使用此类创建特殊的局部视图 如果您需要在不同的地方重复使用,请参考。

  • 加载“添加新项目”后,部分视图已加载,对话框为 显示,只需使用加载的html初始化“添加新项目”小部件。