在asp.net mvc3中,我想要一個通用的方法,它將視圖模型對象添加到數據庫中,無論數據庫發送到數據庫中的哪個位置。要做到這一點,我試圖通過發佈的模型。不過,我動態地做這件事有點困難。我試過,但沒有奏效:我可以動態發佈視圖模型嗎?
觀點:
(psuedo)
begin form aiming at Add
fields
input type = submit
控制器動作
[HttpPost]
public ActionResult Add(dynamic model,...)
問題是模型是永遠不會填滿。隱藏的字段是,但模型用助手定義的實際字段不會進入模型。我知道只是將它命名爲model
很可能不會排列正確。我敢肯定,如果我強烈地鍵入模型,如(MyExplicitClass model,...)
,它會工作,但這會破壞動態方法,因爲我希望能夠發送class1,class2,class3,class5,class8,class13等。
Is there任何方式得到這個工作,無論發送什麼@model class21
,dynamic model
(或equiv)都會捕獲該對象?
如果我把一個過濾器來推斷,然後投的類型?這可以工作嗎? – 2012-04-15 21:34:35
@TravisJ - 過濾器(假設你是一個屬性)在編譯時被靜態綁定。他們不會在運行時工作,所以無法在運行時更改過濾器。 – 2012-04-15 21:39:02
可以通過綁定蹦跳,並在運行時使用動態創建的靜態類型的副本來完成。 – 2012-04-15 21:39:54