ASP中的Usercontrol问题.NET MVC 2



下面是我的UI视图页面:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.Person>" %> 

现在,我添加了User控件,它使用RegisterModel来显示内容。

<asp:Content ID="Content3" ContentPlaceHolderID="MyControl" runat="server">
    <%Html.RenderPartial("RegisterControl"); %>
</asp:Content>

我收到错误:

传递到字典中的模型项的类型为"MvcApplication1.Models.Person",但此词典需要模型类型的项目’系统。集合。通用的IEnumerable `1[MvcApplication1.Models.RegisterModels]'.

请帮帮我。。。我需要做什么。。。??

您应该将模型传递给视图。

<%Html.RenderPartial("RegisterControl", new MvcApplication1.Models.Person()); %>

这里的更多信息:带有null模型的renderpartial被传递了错误的类型

您的问题是您的父视图被强类型化为Person。当您调用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); %>

最新更新