2009-09-17 28 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> 
相关问题