2011-06-27 46 views
0

我動態地構建了一個帶有一些輸入字段的ASP.NET MVC3視圖,但是導致了UI的動態創建,我不知道哪些輸入字段可用。 點擊一個按鈕(搜索)後,我想將實際的輸入數據作爲Model(ViewModel)傳遞給Action。這裏是問題所在,我不知道模型具有哪些屬性以及如何將此動態模型/對象傳遞給動作。如何將動態數據模型傳遞給動作?

我想簡單地做它像這樣:

public ActionResult StartQuery(dynamic request) 
{ 
    var test = request; 
    //... 
} 

但不`噸知道如何處理這種動態對象。如果這是正確的方法,我是否必須使用反射或者是否有人可以給我提示如何正確地將動態數據推送到Action?

由於提前, 科德爾

-edit

即使我知道這不`噸計算出輸入的ID。繼續收到DynamicBinderExceptions。

public ActionResult StartQuery(dynamic request) 
    { 
     string test = request.ArticleNo; 
     string test2 = request.ArtNoOfSuppl; 
     string test3 = request.ArticleGrp; 
     //... 

這些用於測試的確切的ID,我不能建立在名稱中,可能會改變。

+0

你知道你填充到動態視圖的屬性嗎?我的意思是輸入域的ID .. – Illuminati

+0

您是否正在嘗試構建通用搜索操作 – Tassadaque

+0

嗨,inputfield的ID也會生成,具體取決於web.config的數據。有一個自定義部分的設置將從中構建ui。例如。如果用戶僅添加3個特殊輸入字段的詳細設置,則這些字段將建立在ui上。 – cordellcp3

回答

3

不要使用dynamic,如果你知道的名字,你可以從請求直接獲取它們:

public ActionResult StartQuery() 
{ 
    string test = Request["ArticleNo"]; 
    string test2 = Request["ArtNoOfSuppl"]; 
    string test3 = Request["ArticleGrp"]; 
    ... 
} 

如果你不知道他們你仍然可以通過Request.Params收集循環,並根據您的規則找到你需要的參數。

+0

嗨,感謝Darin!這應該爲我的目的工作! :) – cordellcp3

相關問題