在ASP.NETMVC视图中使用javascript和css文件?

在ASP.NETMVC视图中使用javascript和css文件?,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,让jQuery插件在MVC视图中正常工作有点困难。现在看起来是这样的:(我已经将所有需要的jQuery包含和css文件复制到站点的/Scripts文件夹中) intellisense正在抱怨上面的link元素不能嵌套在div标记中(什么div?),intellisense也不能在任何输入标记中找到“star”类 当我导航到有问题的页面时,我看不到星星,只看到单选按钮列表。就好像jQuery的东西没有运行一样 在MVC视图中,我应该将脚本和链接标记放在哪里?谁有小样本我可以举个例子 我将回顾来

让jQuery插件在MVC视图中正常工作有点困难。现在看起来是这样的:(我已经将所有需要的jQuery包含和css文件复制到站点的/Scripts文件夹中)


intellisense正在抱怨上面的link元素不能嵌套在div标记中(什么div?),intellisense也不能在任何输入标记中找到“star”类

当我导航到有问题的页面时,我看不到星星,只看到单选按钮列表。就好像jQuery的东西没有运行一样

在MVC视图中,我应该将脚本和链接标记放在哪里?谁有小样本我可以举个例子

我将回顾来自Wrox的“Professional ASP.Net MVC”的这个示例,Ajax一章留下了一些需要改进的地方,因为代码都是片段,没有完整的页面。本书的Wrox网站章节代码也包含相同的代码片段,每个文本文件一个,没有任何用处


谢谢

您的站点是否使用母版页?如果是这样,您可以将所有包含标记放在母版页中,那么使用母版页的所有视图都可以使用它。

您的站点是否使用母版页?如果可以将所有include标记放在母版页中,那么使用母版页的所有视图都可以使用它。

您需要将
放在
..
部分,脚本标记应该可以。您可以将它放在母版页的标题中。

您需要将
放在
..
部分,脚本标记应该可以。您可以将其放在母版页的标题中。

在母版页文件的标题区域中创建内容占位符。您可以在需要将脚本和样式插入特定视图时使用此选项,这意味着您不会偏离说明这是此类文件应该使用的指导原则

在您的站点.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>

在母版页文件中,在标题区域中创建内容占位符。您可以在需要将脚本和样式插入特定视图时使用此选项,这意味着您不会偏离说明这是此类文件应该使用的指导原则

在您的站点.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>

使用助手方法获取脚本和css文件的正确位置也是一个很有用的练习

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

使用助手方法获取脚本和css文件的正确位置也是一个有用的练习

<script src="<%= Html.Content("~/Scripts/jquery-1.3.2.js") %>
        type="text/javascript"></script>
请检查并查看您调用特定文件时得到的响应……如果脚本正确呈现,并且针对特定页面……如果没有,请发布响应和副本

我在mvc中使用js时遇到了类似的问题,我无法加载j查询……因此我创建了一个helper类,它为我返回绝对路径

    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>

请检查并查看您调用特定文件时得到的响应……如果脚本呈现正确且针对特定页面……如果没有,请发布响应和副本

我在mvc中使用js时遇到了类似的问题,我无法加载j查询……因此我创建了一个helper类,它为我返回绝对路径

    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>


Hi Fermin,感谢您的回复。我正在使用母版页,并尝试将上面的所有脚本和链接标记放入其中。Intellisense没有抱怨,但页面没有显示任何星星。事实上,什么都没有!我还希望避免将这些javascript文件放入Site.Master,因为只有一个页面会使用它们。您是否使用了>之类的工具来查看页面的呈现方式以及javascript的加载是否正常。你有你的$(函数(){}在你的js文件中?嗨,Fermin,谢谢你的回复。我正在使用母版页,并尝试将上面的所有脚本和链接标记放入其中。Intellisense没有抱怨,但该页没有呈现任何星星。事实上,没有呈现任何内容!我也希望避免将这些javascript文件放入站点。母版,因为只有一个页面将使用您是否使用了>之类的工具来查看页面的呈现方式,并查看javascript是否加载良好。您是否有$(function(){}在你的js文件中?谢谢大家提供的所有提示。事实证明,一旦我在contentheaders中的正确位置获得了链接和标记,我还需要将星星的gif文件复制到我的脚本目录中。我应该看到这一点,尽管告诉这个javascript库这些图像在哪里会很好,而不是不得不这样做将它们与脚本放在同一个目录中…感谢所有提示,各位。事实证明,一旦我在ContentHeader中的正确位置获得了链接和标记,我还需要将星星的gif文件复制到脚本目录中。我应该看到这一点,尽管告诉这个javascript库这些文件在哪里会很好图像是,而不是把它们放在同一个目录作为脚本。。。