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 并且它始终为空。怎么了?

4

2 回答 2

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 回答
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 回答