javascript - 局部 View 和 CSS/Javascript

标签 javascript asp.net-mvc partial-views asp.net-mvc-partialview cassette

我正在尝试确定构建我的应用程序的最佳方式,这样我就不会到处都是大量的 javascript。

我有一个 ASP.NET MVC 应用程序,它有一个 View ,它使用迈克尔肯尼迪对 Improve perceived performance of ASP.NET MVC websites with asynchronous partial views 的方法加载了一个 sllooooowwwww 局部 View 。 .局部 View 本身正在呈现 DataTables网格(它有自己的 CSS/JS 文件),以及网格本身的基于 Javascript 的配置(列格式、排序默认值、编辑器配置等)。

我的问题是什么是构建和维护所有这些的简洁方法?我这里涉及至少 3 种脚本(CSS 和/或 JS):

  1. 主视图上加载局部 View 的 JS。
  2. 数据表的 CSS/JS 文件
  3. $(document).ready() 上运行并配置特定网格的局部 View 内的 JS。

我可以控制(在主视图上)使用 Razor 的脚本/样式的 @section 渲染 CSS/JS(上面的项目 #1)。但是,局部 View 无法利用 @section 功能,因此局部 View 中的任何 CSS/JS 都会被注入(inject)到页面中间。这对我来说并不是很好,因为渲染的 HTML 看起来很糟糕,CSS/JS 出现在主视图的中间。我知道类似 Cassette 的事情当 CSS/JS 全部存储在外部文件中时,可以帮助解决第 2 项。

但是第 3 项我有 CSS/JS,它非常特定于那个局部 View 呢?它可能像为 View 附加点击事件处理程序或配置 JQuery 插件一样小,但这是否意味着我应该将其分离到另一个 JS 文件中?如果不需要,我不喜欢将这些东西分开,尤其是每个局部 View 的网格配置。

在我的例子中,我有一个包含多个 View 的应用程序,这些 View 包含这些渲染网格的局部 View ,并且没有一个网格包含相同的列集 - 所以每个网格的 JS 配置是不同的,它在 $ 上运行(文档).ready().

最佳答案

出于您提到的原因,我会考虑完全不使用局部 View 。不要使用 ajax 加载部分 View ,而是从 Controller 加载 json 数据。使用像 handlebars.js 这样的 JavaScript 模板在客户端获得 Razor 效果。 干净多了。较小的 http 负载。

关于javascript - 局部 View 和 CSS/Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125342/

相关文章:

asp.net-mvc - 应用程序不记录

javascript - 如何在不复制数据的情况下在站点的页面之间共享静态数据?

asp.net-mvc - ASP.NET MVC 中部分 View 的正确位置是什么?

c# - 从模式中的部分获取数据元素,用Javascript设置父级中文本框的值?

php - Magento 自定义价格未显示在购物车/结账上

javascript - amchart 中的 valueAxes "gridCount"不工作

javascript - CSS3动画如何移动到某个关键帧?

javascript - ng :disabled does not work with select html element

asp.net-mvc - 滚动到验证摘要 - ASP.net MVC

javascript - 当部分 View 中的ajax调用完成时,如何在主机MVC页面上调用javascript?