Asp.Net MVC - 将模型返回到视图时出现问题

时间:2009-11-09 16:23:46

标签: asp.net asp.net-mvc debugging

我最近开始使用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

我很想知道是否有人认为这是相关的领域? (虽然在一个干净的基础项目中这是有效的)。对解决方案有何建议?这是一个错误吗?

2 个答案:

答案 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。