在mvc母版页中编写代码真的不可能吗?

时间:2009-04-07 19:37:59

标签: asp.net-mvc

我想做的就是写一些像

这样的东西
<%=Html.ScriptInclude("~/Scripts/jquery.1.2.6.js")%>

当我这样做时,我收到错误:

  

Controls集合不能   修改,因为控件包含   代码块(即&lt;%...%&gt;)

我正在使用ASP.NET MVC Release Candidate 1.

这不可能完成吗?

4 个答案:

答案 0 :(得分:2)

没有。不是不可能。我这样做。下面最近项目的代码片段。什么似乎是问题?

请注意,StyleSheetJavascript是我自己的扩展方法,UrlHelper上的DatedContent扩展名也是如此。要使您自己的扩展方法起作用,您需要在页面顶部导入包含它们的命名空间。

<%@ Import Namespace="MvcExtensions" %>

<%= Html.StyleSheet( Url.DatedContent( "~/Content/styles/themes/jquery-ui-theme.css" ) )%> 
<%= Html.StyleSheet( Url.DatedContent( "~/Content/styles/Site.css" ), "all" ) %>
<%= Html.Javascript( Url.Content( "~/Scripts/jquery-1.3.2.min.js" ) ) %>
<%= Html.Javascript( Url.Content( "~/Scripts/ui/ui-all-1.7.1.min.js" ) ) %>

答案 1 :(得分:1)

你为什么不这样做:

<script src="../../Script/jquery.1.2.6.js" type="text/javascript"></script>

答案 2 :(得分:1)

将您的代码放在<asp:PlaceHolder runat="server">标记内。 RC1中有一个已知的错误导致了这个问题。查看release notes的第23页。

我没有升级到1.0,所以我不知道这是否已修复。

答案 3 :(得分:0)

尝试更改......

<%= Html.ScriptInclude("~/Scripts/jquery.1.2.6.js")%>

...到...

<%# Html.ScriptInclude("~/Scripts/jquery.1.2.6.js")%>

(将 = 更改为