1

以下は私のUIビューページです:

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

ここで、Register Model を使用してコンテンツを表示する User コントロールを追加します。

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

エラーが発生しています:

ディクショナリに渡されたモデル アイテムのタイプは 'MvcApplication1.Models.Person' ですが、このディクショナリにはタイプ 'System.Collections.Generic.IEnumerable`1[MvcApplication1.Models.RegisterModels]' のモデル アイテムが必要です。

ここで私を助けてください...私がしなければならないことは...??

4

2 に答える 2

0

ここでの問題は、親ビューが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); %>
于 2012-09-12T12:22:21.450 に答える
0

モデルをビューに渡す必要があります。

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

詳細はこちら: null モデルの renderpartial に間違った型が渡される

于 2012-09-12T11:58:16.450 に答える