2017-12-27 1 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"); 

} 
} 

ときに新しい要素1ずつ増加とのIDと名前よりオプションをクリック、私の問題はです。私がサブミットをクリックすると、コントローラのポストアクションにすべての要素値を送信したいと思います。

答えて

0

この質問についての記事やトピックがたくさんあります:

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

ASP.NET MVC Dynamic Forms

私は主要なポイントが表示されます。動的に入力をアクションモデルにバインドする方法。

モデルとしてコレクションが必要です。

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

ですから、インデックスを持つコレクションのプロパティに入力の名前をバインドする必要があります。

カミソリで次に
public class SampleViewModel 
{ 
    public IEnumerable<SampleItemViewModel> Items {get;set;} 
} 

public class SampleItemViewModel 
{ 
    public string Id {get;set;} 
} 

は、あなたがこのような入力を作成する必要があります表示します。あなたの行動で:

public ActionResult Post(SampleViewModel model) 
{ 
    var items = model.Items; // Here you should have your collection 
} 
+0

ありがとう、しかし、あなたの答えは正確に私の問題を解決していないより多くの説明で上記のコードに見ることができます。 –

+0

コントローラーのアクションとモデルを見せてください。 – Iaroslav

関連する問題