MVC从动态字段获取数据

时间:2016-11-11 16:14:55

标签: asp.net-mvc dynamic get

我是MVC的新手:(

我通过克隆主要DIV元素及其元素来创建动态表单。元素是组合框,文本框和日期文本框。当我创建一个新的“克隆”时,DIV的每个成员都有一个增量ID,如tab_Container,tab_Container_1,text,text1,combo,combo1等......现在,我正在尝试获取每个成员的值Divs进入控制器。

谷歌搜索我发现这样的事情:

    [HttpPost]
    public ActionResult NewEntry(Model Entry)
    {

        Control myControl = new Control();
        myControl.FindControl("Text0");

        if (myControl != null)
        {
        /// apparently, find the control,here i wanna to get the value of each field !! ¿?
          /// do i have to create a list[] ... exist something like Entry.Text0 = myControl.value? 
        }
        else
        {
           Response.Write("Control not found");
        }

        return View(Entry);
    }

有什么建议吗?控制是最好的选择吗?我是否必须在Javascript代码中执行其他操作?

1 个答案:

答案 0 :(得分:0)

虽然拥有某种Model / ViewModel通常会更好,但这种情况有点不同。 MVC绑定表单输入的“名称”属性。

所以说你的razor语法会生成如下内容:

<form>
    <input type="text" name="input1" />
    <input type="text" name="input2" />
    <!-- etc etc etc -->
    <input type="submit" value="submit" />
</form>

因为这是动态生成的,并且您没有可以干净地绑定到此的模型。您可以使用FormCollection类型作为操作的参数。这将为您提供发布到服务器的所有项目的集合,然后您可以循环访问或查找以获取所需的属性。

public ActionResult myAction(FormCollection collection)
{
    var value = collection["input1"];
    var value2 = collection["input2"];

    return View();
}