私はAjaxポストメソッドを使用してそれを行いました.しかし、私の問題は、Ajaxではファイルをダウンロードできないため、別のアイデアが必要だったことです.以下は私のコードです
Asp.net MVC Ajax Post: <script type="text/javascript"> $(document).ready(function () { $('#btn').click(function () { var vals = []; $('input:checkbox[name=Blanks]:checked').each(function () { vals.push($(this).val()); }); $.ajax({ // Check the value. type: 'POST', enctype: 'multipart/form-data', url: '/Home/Extract', // data: { 'name': checkboxData }, data: { 'name': JSON.stringify(vals) }, // contentType: 'application/json; charset=utf-8', // No need to define
contentType 成功: 関数 (結果) {
}, error: function (err, result) { alert("Error in delete" + err.responseText); } }); }); return false; }); </script> @foreach (var m in (List<string>)ViewData["list"]) { <ul> <li> <input type="checkbox" class="myCheckbox" name="Blanks" value="@m"/> <img src="@m" alt=""/> </li> } ASp.net MVC controller Section: [AcceptVerbs(HttpVerbs.Post)] public ActionResult Extract(string[] name) { return view(); }
Ajax post メソッドなしで必要です。可能ですか?
質問する
9451 次
1 に答える
1
同じ名前で値が異なるチェックボックスがたくさんあります。それらを FormCollection を取るメソッドに投稿できます。
public ActionResult Test(FormCollection collection)
{
string results = collection["Blanks"];
}
これにより、コンマ区切りの値のリストが得られます (または、チェックボックスがチェックされていない場合は null)。
または、可能な値をサーバー上に配列として持っている場合は、配列の値に従ってチェックボックスに名前を付けることができます。これは、次のようなことができることを意味します。
@using (Html.BeginForm("Test","Home"))
{
@Html.CheckBox("Blanks[0]", false);
@Html.CheckBox("Blanks[1]", false);
@Html.CheckBox("Blanks[2]", false);
<input type="submit" value="Submit" />
}
Test メソッドでブール値の配列を指定します。
public ActionResult Test(bool[] Blanks)
{ }
于 2013-06-30T16:02:14.050 に答える