将表从viewmodel返回到C#MVC中的控制器

时间:2012-12-02 07:07:49

标签: c# jquery asp.net-mvc viewmodel

我有一个视图,我允许用户将项添加到表中。该表使用简单的html表单和jquery构建,以添加新行。

我需要能够将从视图添加的行返回到控制器(理想情况下通过视图模型)。现在,我能想到的是使用jquery以分隔格式将数据添加到隐藏字段。

但是我担心添加的数据长度对于隐藏字段来说可能太多了,而且验证它会很复杂。

任何建议都将不胜感激!

由于

2 个答案:

答案 0 :(得分:0)

可能使用ready组件会更有用吗?例如,Telerik或KendoUI可以开箱即用。

但是如果你想自己做,你可以将这些行放在javascript对象中并使用ajax请求提交。在控制器动作中,它可以在modelbinder的帮助下绑定到modelview。

答案 1 :(得分: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();

   } 
 }