2009-11-09 84 views
1

我最近开始使用Preview2的Areas功能,它工作正常,直到我需要将模型返回到视图。Asp.Net MVC - 将模型返回到视图的问题

控制器:

public ActionResult ForgotPassword() 
{ 
    return View(new PasswordViewModel()); 
} 

查看:

<%@ Import Namespace="Portal.Site.Areas.Logon.ViewModel"%> 
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<PasswordViewModel>" %> 

没什么难的,除了我一直得到以下错误。

Parser Error Message: Could not load type 'System.Web.Mvc.ViewPage<PasswordViewModel>'. 

这似乎发生在区域部分内的任何视图/控制器。如果我删除返回模型并添加使用字典,它工作正常。

现在我知道这个问题,正如线程描述的那样。

http://forums.asp.net/t/1378448.aspx

我会有兴趣看看是否有人认为,这是地区有关系吗? (尽管在一个干净的基础项目中这是有效的)。对解决方案有何建议?这是一个错误?

回答

2

这可能是由于您的视图文件夹中没有web.config引起的。

例子web.config中的页面设置:

<pages 
    validateRequest="false" 
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=************" 
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=************"> 
    <controls> 
     <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
    </controls> 
</pages> 
+0

谢谢!愚蠢的是这很简单。 – LiamB 2009-11-09 17:37:36

0

的问题也可能是因为它无法找到,因为命名空间差异的类PasswordViewModel。如果您使用默认MVC项目设置并且PasswordViewModel位于Model文件夹中,我相信页眉中引用的类名应该是web.model.PasswordViewModel。