我正在尝试使用MVC 3中的以下内容加载javascript,但脚本无法加载:
<script src="<%: Url.Content("~/Content........
如果我使用以下内容加载,那么它可以工作:
<script src="../../Content......
可能是什么问题
答案 0 :(得分:2)
加载脚本时,我倾向于使用自定义帮助程序。
下面的代码执行此操作,并且有一个额外的布尔参数,可以在脚本不是您的应用程序本地时使用,例如在CDN上使用。
public static MvcHtmlString Script(this HtmlHelper helper, string src, bool local = true)
{
if (local) {
src = VirtualPathUtility.ToAbsolute("~/Scripts/" + src);
}
TagBuilder builder = new TagBuilder("script");
builder.MergeAttribute("src", src);
builder.MergeAttribute("type", "text/javascript");
return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal));
}
然后,您可以在视图中调用帮助程序,如下所示:
<%: Html.Script("jquery.validate.min.js") %>
或:
<%: Html.Script("http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.js", false) %>
答案 1 :(得分:1)
您应首先添加程序集(命名空间)
System.Web.Optimization
然后简单地渲染这样的任何脚本。
@Scripts.Render("~/Content/Scripts/test.js")
不要忘记首先包含名称空间
Using System.Web.Optimization;
答案 2 :(得分:0)
注意<%:
呈现HTMLString,但您不希望这样。 <%=
呈现一个字符串。
下面应该有用。
<script src="<%= Url.Content("~/Content........
请参阅此问题了解详情ASP.NET <%= %> vs <%: %>