MVC SportsStore:[建立类别导航菜单]

时间:2010-07-09 09:36:02

标签: asp.net-mvc

我一直在关注Steven Sanderson的名为Pro ASP.NET MVC Framework的书,我遇到了一个例外:

  

编译错误

     

描述:期间发生错误   编译所需的资源   为此请求提供服务。请查阅   以下具体错误详情   并修改您的源代码   适当。

     

编译器错误消息:CS0121:   呼叫之间是暧昧的   以下方法或属性:   “Microsoft.Web.Mvc.ViewExtensions.RenderAction(System.Web.Mvc.HtmlHelper,   string,string)'和   “System.Web.Mvc.Html.ChildActionExtensions.RenderAction(System.Web.Mvc.HtmlHelper,   string,string)'

Line 15:     </div>
Line 16:     <div id="catagories">
Line 17:         <% Html.RenderAction("Menu", "Nav"); %>
Line 18:     </div>
Line 19:     <div id="content">

我的Site.Master代码:

<body>
    <div id="header">
        <div class="title">
            SPORT STORE</div>
    </div>
    <div id="catagories">
        <% Html.RenderAction("Menu", "Nav"); %>
    </div>
    <div id="content">
        <asp:ContentPlaceHolder ID="MainContent" runat="server" />
    </div>
</body>

我感谢我知道哪里出错了。当我将MVC1的Microsoft.Web.Mvc.dll更改为MVC2的Microsoft.Web.Mvc.dll时,此错误已解决。但它似乎还有其他错误:

  

编译错误

     

描述:期间发生错误   编译所需的资源   为此请求提供服务。请查阅   以下具体错误详情   并修改您的源代码   适当。

     

编译器错误消息:CS0234:   类型或命名空间名称'NavLink'可以   在命名空间中不存在   'WebUI.Controllers'(你错过了吗?   汇编参考?)

来源错误:

Line 170:    
Line 171:    [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
Line 172:    public class views_nav_menu_ascx : System.Web.Mvc.ViewUserControl<IEnumerable<WebUI.Controllers.NavLink>> {
Line 173:        
Line 174:        private static bool @__initialized;

那么,我现在该怎么办?

1 个答案:

答案 0 :(得分:1)

关于第5章,第137页:

<%@ Control Language="C#" 
Inherits="System.Web.Mvc.ViewUserControl
<IEnumerable<WebUI.Controllers.NavLink>>" %>

对我不起作用。我一直得到:命名空间'WebUI.Controllers'中不存在类型或命名空间名称'NavLink'

我必须将“... Controllers.NavLink ...”更改为“... Controllers.NavController.NavLink ...”才能使其正常工作。像这样:

<%@ Control Language="C#" 
Inherits="System.Web.Mvc.ViewUserControl
<IEnumerable<WebUI.Controllers.NavController.NavLink>>" %>