MVC2中使用强大的视图页面问题中的对象模型类型
-
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; }
}
不知道这里发生了什么。
如果我使用添加视图向导添加新视图,一切都很好,但是此现有页面我总是为视图模型类型提供一个对象。
我可以解决这个问题,只是想知道这里发生了什么?
幕后有些东西吗?只是好奇我缺少什么。
在这种情况下,控制器正在传递新的thingmodel()。
解决方案
您应该用新的解析器覆盖解析器。在视图文件夹中查看您的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>
不隶属于 StackOverflow