我创建了一个 HtmlHelper 扩展(PathReference 是 ReSharper 的 JetBrains.Annotations 属性,可以省略):
public static class HtmlHelperExtensions
{
public static MvcHtmlString Script(this HtmlHelper html, [PathReference]string scriptFile)
{
var filePath = VirtualPathUtility.ToAbsolute(scriptFile);
return new MvcHtmlString("<script type=\"text/javascript\" src=\"" + filePath + "\"></script>");
}
}
然后我在我的母版页中这样做
<%
if (false)
{
%>
<script src="../../Scripts/jquery-ui-1.8.9.custom.min.js" type="text/javascript"></script>
<%
}
%>
<%:Html.Script("~/Scripts/jquery-ui-1.8.9.custom.min.js")%>
我现在拥有智能感知和正确的运行时引用。
(感谢 Sruly 的if(false)
技巧)