MVC中JQuery文件引入的路徑問題,@Url.Content函數


今天寫了個MVC的Demo,文件夾結構很簡單,如下:
利用EF生成Model框架並手工加表字段注解,但在頁面上JS驗證始終沒顯示。實在無語。
無意中在瀏覽器里按F12,看見提示:
 
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:1445/~/Scripts/jquery.validate.min.js
Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://localhost:1445/~/Scripts/jquery.validate.unobtrusive.min.js%22
 
估計是路徑JS文件的路徑問題,趕緊看了下Layout.cshtml視圖:
 
 1 <head>
 2     <meta charset="utf-8" />
 3     <title>@ViewBag.Title</title>
 4     <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
 5     <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
 6     <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
 7     <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
 8     <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
 9     <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
10     @*映射錯誤的路徑*@
11     <script type="text/javascript" src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
12     <script type="text/javascript" src="~/Scripts/jquery.validate.min.js"></script>
13     <script type="text/javascript" src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
14 </head>

果然,11,12,13行的代碼運行時會被映射到:

映射后的物理路徑有問題。實際Jquery在網站根目錄下,而不再Test文件夾下!

把出錯的這幾行去掉,用@Url.Content()函數映射,將虛擬(相對)路徑轉換為應用程序絕對路徑。

 
PS:要想使用MVC的JS自動驗證,除了在Model寫注解、引入jquery-1.5.1.min.js外,還要注意是否引入了jquery.validate.js。從名字即可得知,那是JS的驗證方法集。
默認的MVC3空項目和Internet的_Layout.cshtml不引用jquery以及validate.js.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM