繁体   English   中英

ASP.NET MVC View无法正确呈现脚本标记

[英]ASP.NET MVC View not rendering script tags properly

我有一个非常简单的MVC项目,在_Layout.cshtml中,我有一些js包含如下代码:

<script src="~/scripts/jquery-2.0.3.min.js"></script>
<script src="~/scripts/easing.js"></script>
<script src="~/scripts/bootstrap.js"></script>

但是,当渲染时,它在页面上的渲染方式如下(请注意第一个波浪号):

<script src="~/scripts/jquery-2.0.3.min.js"></script>
<script src="/scripts/easing.js"></script>
<script src="/scripts/bootstrap.js"></script>

我似乎无法使其正确渲染,并且第一个脚本标签无关紧要,这是它添加/保留波浪号的标签。 我已经使用了两次jquery脚本,第一个将有波浪号,但第二个将被包含在内,但我根本不喜欢这种解决方案。

我正在使用VS 2012,它是一个.NET 4.5 MVC应用程序。 从我的搜索来看,这似乎是Razor v1的已知问题,但是他们提供的解决方案似乎在这里并不适用。

您应该使用@Url.Content()帮助器(toto,我们不再使用ASP.NET)。

<script src="@Url.Content("~/Scripts/jquery-2.0.3.min.js")"></script>
<!-- etc. -->

另一个选择是使用Microsoft.AspNet.Web.Optimization包并创建捆绑包:

** BundleConfig.cs

public void RegisterBundles(BundleCollection bundles)
{
  // ...
  bundles.Add(new ScriptBundle("~/js/site").Include(
    "~/Scripts/jquery-2.0.3.min.js",
    "~/Scripts/easing.js",
    "~/Scripts/bootstrap.js"
  ));
  // ...
}

然后在您的页面中使用:

@Scripts.Render("~/js/site")

要么将引用粘贴在捆绑包中,然后使用@Scripts.Render("~/bundlename")或使用

<script src="@Url.Content("~/scripts/jquery-2.0.3.min.js")"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM