如何使控制器中的动作接收来自未知数量输入的更多数据

如何使控制器中的动作接收来自未知数量输入的更多数据?如何使控制器中的动作接收来自未知数量输入的更多数据

我想要点击更多的选项输入更多的信息,这意味着HTML页面上的DOM树越来越多,我不知道如何使操作接收来自HTML页面上未知数量输入的数据。

这是我的html代码

<div class="form-group"> 

<label class="col-md-2 lableAlign">Course Name</label>

<div class="col-md-6">

<input class="col-md-6" type="text" name="courseTitle" id="courseTitle" value="Thamar" maxlength="20">

@Html.ValidationMessageFor(model => model.courseTitle, "", new { @class = "text-danger" })

</div>

</div>

<div class="form-group">

<label class="col-md-2 lableAlign">Certificate</label>

<div class="col-md-6">

<input class="col-md-6 r" type="file" name="courseCertificate" id="courseCertificate" val`enter code here`ue="">

@Html.ValidationMessageFor(model => model.courseCertificate, "", new { @class = "text-danger" })

</div>

</div>

<div class="form-group more" id="corceMore">

<label class="col-md-3 more" onclick="corceAdd()">More +</label>

</div>

这是我的javascript代码

function corceAdd() { 

++corcecount;

if (corcecount < 20) {

$("<div class=\"divStyle\"><div class=\"form-group\"><label class=\"col-md-2 lableAlign\">اسم الدورة</label><div class=\"col-md-6\"><input class=\"col-md-6\" type=\"text\" name=\"corceTitle" + corcecount + "\" id=\"corceTitle" + corcecount + "\" value=\"\"></div></div><div class=\"form-group\"><label class=\"col-md-2 lableAlign\">الشهادة</label><div class=\"col-md-6\"><input class=\"col-md-6 r\" type=\"file\" name=\"corceCertificate" + corcecount + "\" id=\"corceCertificate" + corcecount + "\" value=\"\"></div></div>").insertBefore("#corceMore");

}

}

当点击更多选项的新元素它的标识和名称由一个增加,现在我的问题是当我点击提交我想要发送所有元素值到控制器中的后操作。

回答:

有很多关于这个问题的文章和主题:

http://techiesweb.net/2012/09/17/asp-net-mvc3-dynamically-added-form-fields-model-binding.html

ASP.NET MVC Dynamic Forms

我将展示的重点。如何将动态输入绑定到动作模型。

您需要有一个集合作为模型。

public class SampleViewModel 

{

public IEnumerable<SampleItemViewModel> Items {get;set;}

}

public class SampleItemViewModel

{

public string Id {get;set;}

}

然后在Razor视图,你应该创建一个输入这样的:

<input id='Items__0__Id' type='hidden' name='Items[0].Id' /> 

<input id='Items__1__Id' type='hidden' name='Items[1].Id' />

所以,你应该绑定的名称输入到索引集合的性质。然后在你的行动:

public ActionResult Post(SampleViewModel model) 

{

var items = model.Items; // Here you should have your collection

}

以上是 如何使控制器中的动作接收来自未知数量输入的更多数据 的全部内容, 来源链接: utcz.com/qa/265517.html

回到顶部