2009-09-17 26 views
1

我有一些麻煩,讓我的MVC視圖中正常工作的jQuery插件。下面是它看起來像此刻:(我複製了所有需要的jQuery包含和css文件到網站/腳本文件夾)在ASP.Net MVC視圖中使用JavaScript和css文件?

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

<script src="/Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.MetaData.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.rating.js" type="text/javascript"></script> 
<link href="/Scripts/jquery.rating.css" rel="stylesheet" type="text/css" /> 

<input name="rating" type="radio" class="star" value="1"/> 
<input name="rating" type="radio" class="star" value="2"/> 
<input name="rating" type="radio" class="star" value="3"/> 
<input name="rating" type="radio" class="star" value="4"/> 
<input name="rating" type="radio" class="star" value="5"/> 
</asp:Content> 

智能感知是嘎嘎叫的是鏈接元素上面不能嵌套在div標籤內(什麼div?)智能感知也不能在任何輸入標籤中找到「星級」類。

當我瀏覽網頁的問題,我看不到星星,只是一個單選按鈕列表。就好像jQuery的東西沒有運行。

我應該在哪裏把腳本和鏈接標籤的MVC看法?任何人都可以舉個小樣本作爲例子嗎?

我會在從「專業ASP.Net MVC」從Wrox的和阿賈克斯章令人不滿意這個例子不理想,因爲代碼是沒有完整的頁面中的所有片段。本書的Wrox網站章節代碼也包含相同的片段,每個文本文件一個,並且沒有用處。

謝謝!

回答

1

你需要把<link /><head>...</head>部分腳本標籤應該罰款。你可以把它放在母版頁的頭部。

+0

感謝所有人的提示,事實證明,一旦我將鏈接和

0

您是否使用了母版頁爲您的網站?如果是這樣,您可以將所有包含標籤放在母版頁中,然後使用母版頁將其用於所有視圖。

+0

嗨費爾明, 感謝您的回覆。我正在使用母版頁,並嘗試將上面的所有腳本和鏈接標籤放入其中。 Intellisense沒有抱怨,但該網頁沒有渲染任何明星。事實上,沒有渲染! 我也想避免把這些javascript文件放到Site.Master中,因爲只有一個頁面會使用它們。 – larryq 2009-09-17 07:36:05

+0

您是否使用過像firebug這樣的工具來查看頁面是如何呈現的,並查看javascript是否加載正常。你的js文件中有$(function(){})嗎? – Fermin 2009-09-17 07:47:20

2

在你的母版頁文件,創建在頭部區域內容佔位符。只要需要將腳本和樣式插入到特定視圖中,就可以使用它,這意味着您不會偏離準則,指出這些文件應該放在哪裏。

在你的Site.Master文件:

<head> 
<!-- head stuff here --> 
<asp:ContentPlaceHolder ID="HeadContent" runat="server" /> 
</head> 

在你看來aspx文件:

<asp:Content ContentPlaceHolderID="HeadContent" runat="server"> 
    <script src="/Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
    <script src="/Scripts/jquery.MetaData.js" type="text/javascript"></script> 
    <script src="/Scripts/jquery.rating.js" type="text/javascript"></script> 
    <link href="/Scripts/jquery.rating.css" rel="stylesheet" type="text/css" /> 
</asp:ContentPlaceHolder> 

<asp:Content ContentPlaceHolderID="MainContent" runat="server"> 
    <input name="rating" type="radio" class="star" value="1"/> 
    <input name="rating" type="radio" class="star" value="2"/> 
    <input name="rating" type="radio" class="star" value="3"/> 
    <input name="rating" type="radio" class="star" value="4"/> 
    <input name="rating" type="radio" class="star" value="5"/> 
</asp:Content> 
1

這也是使用一個輔助的方法來讓你的腳本的正確位置的有用和鍛鍊; Tibial css文件。

<script src="<%= Html.Content("~/Scripts/jquery-1.3.2.js") %> 
     type="text/javascript"></script> 
1

fiddler檢查,看看反應烏爾獲得當u調用特定文件....如果腳本正確地呈現和對特定頁面的笏樣的...如果沒有,那麼請張貼響應和副本..

我有一個類似的問題,當我在mvc工作與js我無法加載j查詢...所以爲此,我創建了一個輔助類,它返回我的絕對路徑

public static string ResolveUrl(this HtmlHelper html, string virtualUrl) 
    { 
     Control con = new Control(); 
     var RelativeUrl = con.ResolveUrl(virtualUrl); 
     if (!virtualUrl.StartsWith("~/")) 
      return RelativeUrl; 

     virtualUrl = virtualUrl.Remove(0, 2); 

     string applicationPath = html.ViewContext.HttpContext.Request.ApplicationPath; 
     if (string.IsNullOrEmpty(applicationPath) || !applicationPath.EndsWith("/")) 
     { 
      applicationPath = applicationPath + "/"; 
     } 

     return applicationPath + virtualUrl; 
     } 
    } 

在我看來,我打電話給這樣的網頁。 ..

<script src="<%= Html.ResolveUrl("~") %>Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
相關問題