我有一個視圖,我允許用戶添加項目到表。該表使用簡單的html表單和jquery構建,以添加新行。從視圖模型返回到C#MVC控制器表
我需要能夠返回從視圖添加到控制器(理想情況下通過視圖模型)行。現在,我所能想到的就是使用jquery將分隔格式的數據添加到隱藏字段中。
但是我擔心被添加的數據的長度對於隱藏字段來說可能太多了,再加上驗證起來會很複雜。
任何建議,將不勝感激!
謝謝
我有一個視圖,我允許用戶添加項目到表。該表使用簡單的html表單和jquery構建,以添加新行。從視圖模型返回到C#MVC控制器表
我需要能夠返回從視圖添加到控制器(理想情況下通過視圖模型)行。現在,我所能想到的就是使用jquery將分隔格式的數據添加到隱藏字段中。
但是我擔心被添加的數據的長度對於隱藏字段來說可能太多了,再加上驗證起來會很複雜。
任何建議,將不勝感激!
謝謝
可能使用ready組件會更有用嗎?例如Telerik或KendoUI可以開箱即用。
但是如果你想自己做,你可以把這些行放在javascript對象中,並用ajax請求提交。在控制器動作中,它可以在modelbinder的幫助下綁定到modelview。
謝謝,我需要閱讀ModelBinder,但感謝您指引我朝着正確的方向發展。在通常情況下,您不需要編寫自定義模型綁定器,即可使用 – user1515364
。默認的modelbinder足夠聰明。 –
我想這將是一個更困難的使用視圖模型,因爲你必須知道你經常期望擁有的字段的數量,儘管你可能使用了一個列表,但不知道它是否可以用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();
}
}
是的,你可能會在那裏。 – user1515364
可能是使用現成組件將更加有用嗎?例如Telerik或KendoUI可以開箱即用。 –