Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC局部视图(ASCX)中是否包含JavaScript代码?_C#_Asp.net Mvc_Partial Views_Ascx - Fatal编程技术网

C# ASP.NET MVC局部视图(ASCX)中是否包含JavaScript代码?

C# ASP.NET MVC局部视图(ASCX)中是否包含JavaScript代码?,c#,asp.net-mvc,partial-views,ascx,C#,Asp.net Mvc,Partial Views,Ascx,当您有许多局部视图和特定于它们的JS代码时,是否有放置JavaScript代码的“最佳实践” 我觉得我正在制造一场维护噩梦,因为我有许多部分视图,然后是一堆独立的JavaScript文件,当部分视图发生更改时,这些文件需要同步。出于维护目的,我认为最好将JS代码放在部分视图中。但我违反了普遍接受的惯例,即所有JS代码都应该位于页面底部,而不是混入其中,而且我最终会得到对同一JS文件的多个引用(因为出于intellisense目的,我会在每个ASCX中包含一个引用) 有人有更好的主意吗?使用单一的

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

我觉得我正在制造一场维护噩梦,因为我有许多部分视图,然后是一堆独立的JavaScript文件,当部分视图发生更改时,这些文件需要同步。出于维护目的,我认为最好将JS代码放在部分视图中。但我违反了普遍接受的惯例,即所有JS代码都应该位于页面底部,而不是混入其中,而且我最终会得到对同一JS文件的多个引用(因为出于intellisense目的,我会在每个ASCX中包含一个引用)


有人有更好的主意吗?

使用单一的JS和不引人注目的javascript将行为分层到html页面上

把js扔得到处都是维护的噩梦,即使是firebug


请记住,编程时始终将维护代码的人视为暴力精神病患者。;)

我不知道是否有比您在问题中所述的更为成熟的“最佳实践”,您希望遵守这些实践

最近,我对常见的js/jQuery块采用了一种Html助手方法,我需要这些块来实现某些复杂的“控件”,这些控件需要大量ajax和UIJS的帮助。在我的系统中,我有两个这样的“控件”,每一个都需要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”文件夹,我在其中放置脚本块,然后用转义序列标记所有“variables”,这样我就可以在变量中交换/regex,这些变量是我作为参数传递到helpers(上面)中的。
通过这种方式,我可以重用模板,并且我的视图更轻/更干净。您会注意到帮助程序中的公共参数,例如,我有多个脚本块共有的js函数名或
var
s。这是将孤立的脚本块“链接”在一起的一种方式。

最后,我为帮助者提供了一个公共部分,如果我愿意的话,我可以使用解析器“检查”生成的js/jQuery——在我的例子中,我使用来缩小发布版本中的js——我相信您可以在这里添加一些逻辑,以确保所有脚本都位于页面底部(如果您喜欢)。

这与我的做法类似。我倾向于使用特定的js文件来实现功能的特定区域,然后使用发布前运行的脚本一次性缩小和合并这些文件。它确实为部署添加了另一个步骤,但有助于将页面必须发出的请求数量保持在最低限度。