2

次のように、すべての画像の横にチェックボックスがある画像がいくつかあります。

<input type="checkbox" name="select" value="<%=item.Id%>" />

ハイパーリンクをクリックして、選択したチェックボックスをコントローラーに送信したいと思います。私は持っている :

<a href='<%: Url.Action("DeleteSelected", "Product", new { @ShopID = ViewBag.shopIDempty } ) %>'>Delete</a>

そしてコントローラーで:

public ActionResult DeleteSelected(int[] select, int ShopID)
    {

        foreach (int checkBoxSelected in select)
        {
            //Do something...               
        }
        return RedirectToAction("Index");
    }

しかし、 int[] select には何も渡されず、常に null です。なにが問題ですか?

4

2 に答える 2

0

これらを行う==> 1)選択したチェックボックスの値を含む配列を作成します

var delete= new Array();

     $('.checkboxed').live('click', function () {
                if ($(this)[0].checked == true) {
                    var itemdel= $(this).val();
                    delete.push(itemdel);
                } else {
                    var remve =  $(this).val();
                    for (var i = 0; i < delete.length; i++) {
                        if (delete[i] == remve) {
                            delete.splice(i, 1);
                            break;
                        }
                    }

                }
            });

2) ハイパーリンクをクリックして ajax 呼び出しを行う

$.ajax({
                type: 'POST',
                contentType: 'application/json; charset=utf-8',
                url: '/Product/DeleteSelected'
+ '?ShopID =' + ShopIdValue,
                dataType: 'json',
                data: $.toJSON(delete),


                success: function (result) {
                  window.location.href=result;
                },


                async: false,
                cache: false
            });

3)あなたの行動をこのようにします

public ActionResult DeleteSelected(int[] select)
{
var shopid= Request["ShopID "];
}
于 2013-01-17T12:46:59.953 に答える
0

これを試して:

[HttpPost]
public ActionResult DeleteSelected(FormCollection collection)
{
    try
    {
        string[] test = collection.GetValues("select");
    }
    catch (Exception ex)
    {
        return null;
    }
}

あなたが取っているアプローチでは、すべてのチェックボックスをラップするフォームが必要であるか、Syed が示したようにコントローラーに送信するオブジェクトを具体的に作成する必要があることに注意してください。フォーム アプローチを使用する場合は、リンクを使用してフォーム送信をトリガーするか、リンクを送信ボタンに変換して、ShopID 用の非表示フィールドを用意する必要があります。

于 2013-01-17T15:54:03.520 に答える