簡體   English   中英

我如何不將在asp.net Mvc3中使用Ajax / JQuery的checkBox值傳遞給asp.net mvc 3中的控制器操作

[英]How can i Pass values of checkBox those are checked to controller action in asp.net mvc 3 without using Ajax/JQuery in asp.net Mvc3

    1. 我已經使用Ajax post方法做到了,但是我的問題是使用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方法。可以嗎?

您有一堆具有相同名稱和不同值的復選框。 您可以將它們發布到采用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)
{        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM