C# ASP.NET MVC局部视图(ASCX)中是否包含JavaScript代码?
当您有许多局部视图和特定于它们的JS代码时,是否有放置JavaScript代码的“最佳实践” 我觉得我正在制造一场维护噩梦,因为我有许多部分视图,然后是一堆独立的JavaScript文件,当部分视图发生更改时,这些文件需要同步。出于维护目的,我认为最好将JS代码放在部分视图中。但我违反了普遍接受的惯例,即所有JS代码都应该位于页面底部,而不是混入其中,而且我最终会得到对同一JS文件的多个引用(因为出于intellisense目的,我会在每个ASCX中包含一个引用)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将行为分层到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文件来实现功能的特定区域,然后使用发布前运行的脚本一次性缩小和合并这些文件。它确实为部署添加了另一个步骤,但有助于将页面必须发出的请求数量保持在最低限度。