2009-04-23 23 views
15

強く型付けされたマスターページがありますが、その子ページのいくつかに異なるタイプを使用したいと思います。私は、同じモデルに保ち、ちょうどメンバーオブジェクトを参照できる子ページの一部のように、例えばASP.NET MVC - マスターページとビューページの異なるモデル

は、マスターページに...

<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %> 

クライアントは、すでに複合オブジェクトです。しかし、他のページでは、私が別のモデル(例えば、Customerモデルを扱う子ページ)を扱っているので、そうするのは意味がありません。

マスターページには依然としてクライアントモデルが必要ですが、子ビューはさまざまなモデルで完全に機能します。問題は、コントローラでは、1つのオブジェクトモデルだけをビューに渡すことができることです。あるモデルをマスターに渡し、別のモデルをビューに渡す方法はありますか?ありがとう!

+0

ニース質問、私は同じことを尋ねようとしていました!私は言わなければならないが、トップの答え。マスターマスターが言うように、とても簡単!さて、今それは笑;-) –

+0

同じジレンマ - よく述べています。ありがとうございます。 – nocarrier

答えて

14

階層を作成して、基本モデルをマスターページに、子モデルをビューに渡すことができます。

public class BaseModel 
{ 
} 

public class ChildModelOne : BaseModel 
{ 
} 

public class ChildModelTwo : BaseModel 
{ 
} 

このように、あなたはあなたのビューは、子モデルクラスで利用可能な拡張情報にアクセスする必要がありますしながら、ビューのみ(マスターモデルクラスで利用可能)、独自のデータを見ることができますマスター。

非常に単純です。

+0

すばらしい。エレガントで素晴らしい。 – nocarrier

関連する問題