2012-12-02 85 views
0

我有一個視圖,我允許用戶添加項目到表。該表使用簡單的html表單和jquery構建,以添加新行。從視圖模型返回到C#MVC控制器表

我需要能夠返回從視圖添加到控制器(理想情況下通過視圖模型)行。現在,我所能想到的就是使用jquery將分隔格式的數據添加到隱藏字段中。

但是我擔心被添加的數據的長度對於隱藏字段來說可能太多了,再加上驗證起來會很複雜。

任何建議,將不勝感激!

謝謝

+0

可能是使用現成組件將更加有用嗎?例如Telerik或KendoUI可以開箱即用。 –

回答

0

可能使用ready組件會更有用嗎?例如Telerik或KendoUI可以開箱即用。

但是如果你想自己做,你可以把這些行放在javascript對象中,並用ajax請求提交。在控制器動作中,它可以在modelbinder的幫助下綁定到modelview。

+0

謝謝,我需要閱讀ModelBinder,但感謝您指引我朝着正確的方向發展。在通常情況下,您不需要編寫自定義模型綁定器,即可使用 – user1515364

+0

。默認的modelbinder足夠聰明。 –

0

我想這將是一個更困難的使用視圖模型,因爲你必須知道你經常期望擁有的字段的數量,儘管你可能使用了一個列表,但不知道它是否可以用jQuery實現,但是你可以

增量輸入的名稱創建

<input type='text' name='somename1' /> 
<input type='text' name='somename2' /> 
<input type='text' name='somename3' /> 

和你的後端

[HttpPost] 
public ActionResult collect(FormCollection collection) 
{ 
    List<string> names = Request.Params 
    .Cast<string>() 
    .Where(p => p.StartsWith("somename")) 
    .ToList(); 
    // then iterate thru your dynamically created controls 
    foreach(var item in names) 
    { 
     string text=collection[item].ToString(); 

    } 
} 
+0

是的,你可能會在那裏。 – user1515364