我最近开始使用Preview2的Areas功能,它工作正常,直到我需要将模型返回到视图。
控制器:
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
我很想知道是否有人认为这是相关的领域? (虽然在一个干净的基础项目中这是有效的)。对解决方案有何建议?这是一个错误吗?
答案 0 :(得分: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>
答案 1 :(得分:0)
问题可能还在于,由于命名空间的不同,它找不到类PasswordViewModel。如果您使用默认的MVC项目设置并且PasswordViewModel在Model文件夹中,我相信页眉中引用的类名应该是web.model.PasswordViewModel。