2010-12-08 49 views
2

我有2個ViewModels(CreateVM,EditVM)與Create.aspx和Edit.aspx。兩者共享名爲CreateEditForm.ascx的模板。如何解決傳遞2視圖模型一次在ascx頁

現在的問題是在CreateEditForm.ascx模板我需要定義模型,這將是上述ViewModel的一次。假設CreateEditForm.ascx的CreateVM定義比我無法從Edit ActionResult傳遞EditVM。

如何解決此問題,以便我的CreateEditForm.ascx可以接受兩個ViewModels。任何通用風格?

我希望你們能理解我的問題。

回答

0

有幾種可能的方法可以採取:

  1. 如果您創建UI和你的編輯界面非常相似(例如,如果他們只通過一個ID字段存在不同),您可以只使用一個viewmodel並做一些條件邏輯,例如if (Model.Id == null)
  2. 如果您創建UI和你的編輯界面非常相似你也可以使用其中實現一個共同的接口,並創建這使得剛剛在常見的,例如領域的局部視圖兩種不同的ViewModels

    public class SomethingEditViewModel : ISomethingViewModel { }

    public class SomethingCreateViewModel : ISomethingViewModel { }

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

  3. 如果您創建和你的編輯UI的方式是不同的,只使用2周獨立的ViewModels,因此2個獨立的意見。

+0

怎麼樣? 。需要示例 – Pirzada 2010-12-08 02:20:01

相關問題