问题与用户控件2
下面一个是我的用户界面中查看页:问题与用户控件2
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.Person>" %>
现在,我加入了用户控制,其使用注册模型显示内容。
<asp:Content ID="Content3" ContentPlaceHolderID="MyControl" runat="server"> <%Html.RenderPartial("RegisterControl"); %>
</asp:Content>
我得到错误:
The model item passed into the dictionary is of type 'MvcApplication1.Models.Person', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[MvcApplication1.Models.RegisterModels]'.
请帮我在这里......我需要做的......?
回答:
您应该将模型传递给您的视图。
<%Html.RenderPartial("RegisterControl", new MvcApplication1.Models.Person()); %>
点击此处了解详情:renderpartial with null model gets passed the wrong type
回答:
这里你的问题是,你的父视图是强类型的人的。当你调用RenderPartial时,引擎会简单地将父视图模型传递给局部视图,在你的情况下,它不是一个Person对象,而是一个RegisterModels对象。
所以你有一些选择。我想这大概是你最简单的解决办法: 创建一个新的视图模型
public class PersonRegister {
public Person Person {get; set;}
public RegisterModels Register {get; set;}
}
现在强类型视图以这种模式
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.PersonRegister>" %>
,并调用部分,像这样
<%Html.RenderPartial("RegisterControl", Model.RegisterModels); %>
以上是 问题与用户控件2 的全部内容, 来源链接: utcz.com/qa/265596.html