2017-12-27 105 views
-2

如何使控制器中的動作接收來自未知數量輸入的更多數據?如何使控制器中的動作接收來自未知數量輸入的更多數據

我想要點擊更多的選項輸入更多的信息,這意味着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"); 

} 
} 

當點擊更多選項的新元素它的標識和名稱由一個增加,現在我的問題是當我點擊提交我想要發送所有元素值到控制器中的後操作。

回答

0

有很多關於這個問題的文章和主題:

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 
} 
+0

謝謝,但你的答案並不能解決我的問題,你可以看到更多的解釋與上面的代碼。 –

+0

您能否請您展示您的控制器操作和模型? – Iaroslav

相關問題