2010-12-08 14 views
2

Create.aspxとEdit.aspxで2つのViewModels(CreateVM、EditVM)があります。どちらもCreateEditForm.ascxというテンプレートを共有しています。解決方法解決方法2つのViewModelをascxページで一度に1つずつ渡します。

問題はCreateEditForm.ascxテンプレートにあります。上記のViewModelの1度になるモデルを定義する必要があります。 CreateEditForm.ascxにCreateVMが定義されていて、EditResultからEditVMを渡すことができないとします。

私のCreateEditForm.ascxが両方のViewModelを受け入れることができるように、この問題を解決する方法。一般的なスタイルですか?

皆さん、私の質問を理解していただきたいと思います。

答えて

0

は、あなたが取ることができるいくつかの可能なアプローチがあります:(彼らは唯一のIDフィールドの存在によって異なる場合など)

  1. をあなたのUIとあなたの編集UIを作成する場合は非常に似ている、あなただけ使用することができます1つのビューモデルといくつかの条件付き論理、例えばif (Model.Id == null)。あなたも例えば、共通のインタフェースを実装する2つの異なるのviewmodelsを使用し、共通フィールドだけをレンダリング部分ビューを作成することができ、あなたの作成したUIとあなたの編集UIの場合
  2. 非常に似ています

    public class SomethingEditViewModel : ISomethingViewModel { }

    public class SomethingCreateViewModel : ISomethingViewModel { }

    public interface ISomethingViewModel { // define the common fields here }

  3. あなたの作成し、編集UIのは、ちょうど2つの別々のviewmodelsため、2つの別々のビューを使用し、道異なる場合。

+0

どのようにですか? 。例が必要です – Pirzada

+0

作成と編集の違いは何ですか? –

関連する問題