gpt4 book ai didi

c# - 是否在 ASP.NET MVC 局部 View (ASCX) 中使用 JavaScript 代码?

转载 作者:行者123 更新时间:2023-11-30 12:53:05 27 4
gpt4 key购买 nike

当您有许多局部 View 和特定于它们的 JS 代码时,是否有放置 JavaScript 代码的“最佳实践”?

我觉得我正在创造一个维护噩梦,因为我有很多局部 View ,然后是一堆独立的 JavaScript 文件,当局部 View 发生变化时需要同步这些文件。出于维护目的,我认为最好将 JS 代码与部分 View 放在一起。但是我违反了普遍接受的做法,即所有 JS 代码都应该放在页面的底部而不是混合在一起,而且我最终会得到对同一个 JS 文件的多个引用(因为我会在每个 ASCX 用于智能感知目的)。

有没有人有更好的主意?

最佳答案

我不知道是否有比您在问题中已经陈述的要遵循的“最佳实践”更多的既定“最佳实践”。

最近我对常见的 js/jQuery block 采用了 Html Helper 方法,我需要它来实现某些需要大量 ajax 和 UI js 帮助的复杂“控件”。在我的 most recent case我有两个这样的“控件”,每个控件都需要 3 个脚本 block 。

我如何使用这样的辅助程序来使用语法:

    <%-- // jQuery for Patron --%>
<% =Html.MattyJq().DivListItemSingleSelector("selectPatronItem", "div#matchingPatrons",
"patronsPrevSelectedID","PatronID") %>
<% =Html.MattyJq().EmptyTextInputHelper("patronSearch", "patronsFilterSendEmpty") %>
<% =Html.MattyJq().TextChangeDynamicUpdaterSelect("patronSearch","div#matchingPatrons",
"/patrons/getpatronsitems",500,"patronsFilterSendEmpty","patron",
"patronsPrevSelectedID","selectPatronItem") %>

我的 MVC“/Scripts”文件夹中有这个“Template”文件夹,我在其中放置脚本 block ,然后用转义序列标记所有“变量”,这样我就可以在我传递的变量中交换/正则表达式作为参数进入助手(上面)。
这样我就可以重复使用模板,而且我的 View 更轻巧/更清晰。您会注意到那里的助手中的通用参数 - 例如,当我有 js 函数名称或 var 时,它们对多个脚本 block 是通用的。这是一种将孤立的脚本 block “链接”在一起的方法。
最后,我有一个帮助程序的公共(public)部分,如果我选择的话,它使我能够使用解析器“检查”生成的 js/jQuery - 在我的例子中,我使用 .NET YUI Compressor缩小发布版本中的 js - 如果您愿意,我相信您可以在此处添加一些逻辑以确保所有脚本都位于页面底部。

关于c# - 是否在 ASP.NET MVC 局部 View (ASCX) 中使用 JavaScript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893018/

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