我是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代码中执行其他操作?
答案 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();
}