簡體   English   中英

在ASP.Net MVC視圖中使用javascript和CSS文件?

[英]using javascript and css files in ASP.Net MVC View?

我在使jQuery插件在MVC視圖中正常工作時遇到了一些麻煩。 這是現在的樣子:(我已將所有需要的jQuery include和css文件復制到站點的/ Scripts文件夾中)

<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?),智能感知者也無法在任何輸入標簽中找到“ star”類。

當我導航到有問題的頁面時,我看不到星星,只有單選按鈕列表。 好像jQuery的東西沒有運行。

我應該在MVC視圖中的哪里放置腳本和鏈接標簽? 有人可以舉一些小樣本為例嗎?

我正在閱讀Wrox的“ Professional ASP.Net MVC”示例,而Ajax章節有一些不足之處,因為代碼都是沒有完整頁面的代碼段。 本書的Wrox網站章節代碼也包含相同的摘要,每個文本文件一個,並且沒有用。

謝謝!

在母版頁文件的頂部區域中創建內容占位符。 每當需要在特定視圖中插入腳本和樣式時,都可以使用此方法,這意味着您不會偏離說明這些文件應放在哪里的准則。

在您的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>

您需要將<link />放在<head>...</head>部分中,腳本標記應該沒問題。 您可以將其放在母版頁的開頭。

使用Helper方法來獲取Script和CSS文件的正確位置也是一種有用的練習。

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

請檢入提琴手 ,看看當您調用特定文件時得到的響應類型....如果腳本正確渲染且針對該特定頁面...如果否,則發布響應和副本。

當我在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>

您是否正在使用網站的母版頁? 如果是這樣,您可以將所有包含標記放在母版頁中,然后使用母版頁的所有視圖都可以使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM