将复选框传递给控制器​​asp.net mvc

时间:2013-01-17 11:00:33

标签: asp.net-mvc checkbox

我有一些图片,每张图片旁边都有一个复选框,如下所示:

<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。有什么问题?

2 个答案:

答案 0 :(得分:0)

这些==&gt; 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 "];
}

答案 1 :(得分:0)

试试这个:

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

我确实想要注意,您正在采用的方法需要一个表单来包装所有复选框,或者您需要专门构建一个对象以发送到控制器,如Syed所示。如果您使用表单方法,则需要使用a链接触发表单提交或将链接转换为提交按钮并为ShopID设置隐藏字段。