Asp.net mvc 在asp.net Mvc3中,如果不使用Ajax/JQuery,如何将选中的复选框值传递给asp.net mvc 3中的控制器操作

Asp.net mvc 在asp.net Mvc3中,如果不使用Ajax/JQuery,如何将选中的复选框值传递给asp.net mvc 3中的控制器操作,asp.net-mvc,Asp.net Mvc,我已经使用Ajax post方法完成了这项工作,但我的问题是 使用Ajax,我们无法下载文件,因此我需要一个不同的 想法。下面是我的代码 Asp.net MVC Ajax Post: <script type="text/javascript"> $(document).ready(function () {

我已经使用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
Asp.net MVC Ajax帖子:
$(文档).ready(函数(){
$('#btn')。单击(函数(){
var VAL=[];
$('input:checkbox[name=Blanks]:checked')。每个(函数()
{
vals.push($(this.val());
});
$.ajax({
//检查值。
键入:“POST”,
enctype:“多部分/表单数据”,
url:“/Home/Extract”,
//数据:{'name':checkboxData},
数据:{'name':JSON.stringify(vals)},
//contentType:'application/json;charset=utf-8',//无需定义
内容类型 成功:功能(结果){

},
错误:函数(错误、结果){
警报(“删除中出错”+错误响应文本);
}
});
});
返回false;
});
@foreach(列表视图数据[“列表”]中的var m)
{
  • } ASp.net MVC控制器部分: [接受动词(HttpVerbs.Post)] 公共操作结果提取(字符串[]名称) { 返回视图(); }
我需要没有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" />
}
@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" />
}
public ActionResult Test(bool[] Blanks)
{        }