我不知道是否有比您在问题中已经陈述的要遵循的更多既定“最佳实践”。
最近,我采用了 Html Helper 方法来处理需要大量 ajax 和 UI js 帮助的某些复杂“控件”的常见 js/jQuery 块。在我最近的案例中,我有两个这样的“控件”,每个都需要 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”文件夹中有这个“模板”文件夹,我在其中放置脚本块,然后用转义序列标记所有“变量”,这样我就可以在传递给助手的变量中交换/正则表达式(上)作为参数。
这样我可以重用模板,并且我的视图更轻/更清晰。您会注意到那里的帮助程序中的常见参数 - 例如,当我有var
多个脚本块通用的 js 函数名称或 s 时。这是一种将孤立的脚本块“链接”在一起的方式。
最后,我有一个用于帮助程序的公共部分,如果我选择,我可以使用解析器“检查”生成的 js/jQuery - 在我的情况下,我使用.NET YUI Compressor缩小发布版本中的 js - 我相信您可以在此处添加一些逻辑,以确保如果您愿意,所有脚本都位于页面底部。