编程语言
首页 > 编程语言> > c# – ASP.NET MVC部分视图(ASCX)中的JavaScript代码与否?

c# – ASP.NET MVC部分视图(ASCX)中的JavaScript代码与否?

作者:互联网

当您有许多部分视图和特定于它们的JS代码时,是否存在用于放置JavaScript代码的“最佳实践”?

我觉得我正在通过提供许多部分视图来创建维护噩梦,然后为他们创建一堆独立的JavaScript文件,这些文件需要在部分视图更改时同步.出于维护目的,似乎最好将JS代码放在局部视图中.但后来我违反了普遍接受的做法,即所有JS代码都应该在页面的底部而不是混合在一起,而且我最终会对同一个JS文件进行多次引用(因为我在其中包含了一个引用)每个ASCX用于智能感知目的).

有没有人有更好的主意?

解决方法:

我不知道是否有更多已确立的“最佳实践”,而不是您希望在其中提出的问题.

最近我采用了Html Helper方法来处理常见的js / jQuery块,我需要一些需要大量ajax和UI js帮助的复杂“控件”.在我的most recent case中,我有两个这样的“控件”,每个都需要3个脚本块.

我怎么有这个帮助器安排,我可以使用这样的语法:

    <%-- // 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”文件夹,我放置脚本块,然后用转义序列标记所有“变量”,这样我就可以在我传给助手的变量中交换/正则表达式(上图)作为params.
这样我可以重复使用模板,我的视图更轻/更清洁.你会注意到帮助器中的常见参数 – 例如,当我有多个脚本块共有的js函数名或变量时.这是将孤立的脚本块“链接”在一起的一种方式.
最后我有一个帮助器的公共部分,如果我选择的话,我可以使用解析器“检查”生成的js / jQuery – 在我的情况下,我使用.NET YUI Compressor来缩小发布版本中的js – 我相信你可以在这里添加一些逻辑,以确保如果您喜欢,所有脚本都位于页面底部.

标签:c,asp-net-mvc,partial-views,ascx
来源: https://codeday.me/bug/20190710/1422532.html