2013-09-25 55 views
0

我有一個非常簡單的MVC項目,並在我的_Layout.cshtml我有一些JS包括像這樣:ASP.NET MVC視圖渲染不正確的腳本標籤

<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> 

我看來不能讓它正確地呈現,並且沒關係script標籤是第一個,就是它增加了一個/保持波浪號。我已經採取了兩次包括jquery腳本,第一個將有一個代字符,但第二個將包括,但我不喜歡這個解決方案。

我正在使用VS 2012,它是一個.NET 4.5 MVC應用程序。從我的搜索看來,這是Razor v1的一個已知問題,但他們提供的解決方案似乎並不適用於此。

回答

2

您應該使用@Url.Content()幫手(我們在ASP.NET更多,TOTO不是)。

<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") 
+0

感謝。我不知道這是不可能的。 – Mike

+0

作爲一個更新,MVC和剃鬚刀現在開箱即用(用於腳本和樣式表)。不需要'Url.Content'(除非你願意爲你自己而這麼做)。 –

1

要麼粘在引用捆綁,並使用@Scripts.Render("~/bundlename")或使用

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