2010-03-07 47 views
2

我有一個編輯頁面,它具有基類作爲數據類,它將根據模型的派生類顯示不同的編輯器窗體。但是,發佈後ASP.NET MVC查看具有相同基類的數據類

[HttpPost] 
public ActionResult Edit(BaseClassModel model) 

此處的模型僅保留基類的值,並且不能轉回派生類。

這怎麼解決?

謝謝

回答

1

根據您的實現的其餘部分,您可以

  • 體型封裝在傳承,使每個當前的子類包含複雜屬性的所有公共字段
  • 編寫你自己的ModelBinder(以DefaultModelBinder源爲例),並在Global.asax中創建它,例如:ModelBinders.DefaultBinder = new ComplexModelBinder();
  • 創建一個BaseClassModelBinderAttribute並標記每個你的論點,例如:public ActionResult Edit([BaseClassModelBinder] BaseClassModel model)
  • 上述組合
相關問題