在ASP.MVC中对部分和视图使用JavaScript的最佳实践?

时间:2010-02-25 15:00:06

标签: asp.net javascript asp.net-mvc

我开始将视图的一部分删除为部分视图,以便可以在另一个视图上重复使用。但是,我被卡住了,因为原始视图上有一些JavaScript函数调用了属于partial的一些函数。从包含视图调用部分定义的函数似乎是错误的(反之亦然)。 这种情况的最佳做法是什么?感谢。

3 个答案:

答案 0 :(得分:1)

我自己创建了一个应用程序并遇到了这个问题,虽然我还没有实现它,但我计划利用JQuery插件做很多事情。如果通过AJAX加载部分,则无法在局部视图中嵌入JS,因为它不会运行。

JQuery是一个非常好的框架,易于构建插件。您只需要开始设计JS以使其更具可重用性(而不是硬编码元素引用等)。

或者,如果没有JQuery,创建单独的JS文件并使用JS类设计代码也是一个很好的策略。

HTH。

答案 1 :(得分:0)

我建议您使用一些ScriptManager并将所有js功能移动到外部文件,因此您只需要在局部视图中为此部分注册所需文件。请参阅以下链接了解详细信息:
Scriptmanager Asp.Net Mvc
http://mvcscriptmanager.codeplex.com/
http://www.telerik.com/help/aspnet-mvc/web-assets-working-with-javascript-web-assets.html

答案 2 :(得分:0)

如果视图可以选择包含partial,它可以在调用之前测试函数是否存在:

if (typeof(foo) == 'function') {
    foo();
}

或者视图可以定义函数的默认版本,可以被部分覆盖。

// in view or master
function foo() {}

// then in the partial
function foo() { /* does something */ }