2011-05-22 74 views
3

我有兩種類型的聯繫實體。一個只有一個電子郵件地址和一個驅動器,並且包含用於郵政地址的字段。當模型與子類綁定時出現ASP.net MVC問題

我試圖讓我的控制器操作的工作與任一類型的接觸和迄今偶然到兩個問題......

  1. 當驗證發生使用DataAnnotations,其驗證領域從基類之前來自子類的字段。我其實想要以相反的順序發生。無論如何重新安排訂單?通常當然可以改變字段的順序,但是如果字段在不同的類中,這是不可能的。

  2. 我發現我需要手動創建模型,因爲默認模型綁定器似乎只想創建操作參數中指定的特定類型。當我嘗試使用'UpdateModel'手動綁定模型時,即使它僅綁定了基本類型字段(基本類型是我的聯繫工廠返回的類型)。

任何一個有做這個有什麼建議?看起來我不得不恢復到意大利式麪條代碼,這些代碼不斷評估正在操作的聯繫人的類型。

乾杯,伊恩。

+0

嗯,我已經通過使用兩個不相關的聯繫人視圖模型,兩個不同的局部視圖,沒有鍵入主網頁的模型以及控制器中的大量'if'語句來工作。我猜MVC不適合某些關鍵位置的多態性!您可以看到,模型聯編程序沒有考慮模型的運行時類型,因爲在MVC源代碼中,可以看到它根據類型參數查找類型信息,而不是傳入對象的類型。 – 2011-05-22 17:14:11

+0

請告訴我有更好的方法! – iwayneo 2011-06-26 16:33:18

回答

0

您可以嘗試爲兩個聯繫實體實現通用接口。並使用Interface in Action參數,對接口進行驗證。