Asp.Net MVC - проблема возврата модели в представление - PullRequest
1 голос
/ 09 ноября 2009

Я недавно начал использовать функциональные возможности областей в Preview2, и он работал нормально, пока мне не нужно было возвращать модель в представление.

Контроллер:

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 ]

2 голосов
/ 09 ноября 2009

Это может быть вызвано отсутствием файла 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 голосов
/ 09 ноября 2009

Проблема также может заключаться в том, что он не может найти класс PasswordViewModel из-за разницы в пространстве имен. Если вы используете настройку проекта MVC по умолчанию, а PasswordViewModel находится в папке Model, я считаю, что имя класса, указанное в заголовке страницы, должно быть web.model.PasswordViewModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...