Типы объектов в MVC2 с использованием сильно напечатанных страниц просмотра.

StackOverflow https://stackoverflow.com/questions/1532838

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня есть новый конвертированный проект MVC2, работающий против исходного кода MVC2. Я провел этот разговор дважды на одном и том же решении.

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

Теперь в одном сильно напечатанном представлении, в частности, общий параметр не отражается в свойстве модели этой страницы.

Вместо того, чтобы иметь модель типа Ti, всегда имеет модель объекта типа.

Код для неработающей страницы:

<%@Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ThingViewModel>" %>
<%@ Import Namespace="SProject.Web"%>

<asp:Content ID="Content1" ContentPlaceHolderID="PageTitleContentPlaceHolder" runat="server">
    <h2>Add Encounter <%= ViewData.Model.Browser %></h2>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="SidebarContentPlaceHolder" runat="server">

Модель представления:

public class ThingViewModel
{
    public string Browser { get; set; }
}

Нет, не подскажите, что здесь происходит.

Если я добавлю новый представление, используя мастер Add View, все работает отлично, но на этой существующей странице я всегда получаю объект для моего типа модели представления.

Я могу обойти это, просто интересно, что здесь происходит?

Что -то кэшируется за кулисами? Просто любопытно, чего мне не хватает.

Контроллер передает новую Thingingmodel () в этом случае.

Это было полезно?

Решение

Вы должны переопределить анализатор новым. Проверьте свой файл web.config в папке представлений.

это должно содержать

<pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    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=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
</pages>

вместо

 <pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
</pages>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top