gpt4 book ai didi

javascript - 在 ASP.NET MVC 中管理 View 页面脚本

转载 作者:行者123 更新时间:2023-11-29 10:23:01 24 4
gpt4 key购买 nike

我想听听您对在 ASP .NET MVC 中管理脚本的看法。有2个问题我特别好奇:

  1. 跟踪脚本包括 View 的依赖性
  2. 管理和缩小 View 脚本

就像在许多项目中一样,我的 View 由多个部分 View 和编辑器模板组成。我喜欢将与这些 View 相关的脚本保存在同一个代码实体中,例如

SigningKeysForm 局部 View 应该有自己的 JQuery/JQueryUI 脚本。

这意味着呈现此部分 View 的任何 View 都应包含 JQuery/JQueryUI 脚本文件。

还有一个问题是,当一个 View 由多个这样的部分 View 组成时,这意味着部分 View 中的 javascipt 将位于生成的 html 中的多个位置。

我目前解决这些问题的方法是在 ASP .Net MVC 中利用自上而下的 View 解析。

为了解决第一个问题,我定义了一个 HtmlHelper 扩展来包含一个脚本,例如

<% Html.RequireScript(Scripts.JQuery); %>

这样在每个局部 View 和 View 中我都明确指出需要哪些脚本。该方法的实现是在当前HttpContext上创建一个HashSet,并在其中添加所需的脚本。

在我的母版页中,我有另一个 HtmlHelper 扩展,它检查 HttpContext 并呈现脚本包含标记,例如:

<%=Html.RenderScriptIncludeTags()%>

这样我就可以跟踪 View 的需求并只呈现所需的脚本。

对于 View 脚本,我采用了类似的方法。我使用自定义 Asp .Net 用户控件,而不是呈现其内容,而是将脚本内容存储到 HttpContext 上的缓冲区中,例如:

 <mvc:script runat="server">
$(function(){
alert("Hello " + "<%=Model.Name%>");
});
</mvc:script>

再次在主视图中,我有一个 HtmlHelper 扩展,它缩小(如果需要)存储的脚本并呈现它们,例如:

  <%=Html.RenderScripts()%>
</body>

我认为这是一种解决方案,但它需要脚本包含并且脚本位于母版页的底部。这意味着脚本包含不在头部。

我想知道是否有更好的方法来管理脚本要求并使用 ASP .NET MVC 查看页面脚本。

最佳答案

您是否考虑过使用现有工具来执行此类操作,例如 Cassette (以前称为背包)?

Cassette automatically sorts, concatenates, minifies, caches and versions all your JavaScript, CoffeeScript, CSS, LESS and HTML templates.

我还没有亲自使用过它,但它看起来很不错,而且看起来它应该能满足您的需求(甚至更多)。值得注意的是 commercial use 的成本很小.

编辑:现在在 MIT 许可证下发布:)

关于javascript - 在 ASP.NET MVC 中管理 View 页面脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7657782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com