0
    1. 我已经使用 Ajax 发布方法完成了它。但我的问题是使用 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 发布方法。这可能吗?

4

1 回答 1

1

您有一堆具有相同名称和不同值的复选框。您可以将它们发布到采用 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" />
}

在您的测试方法中为您提供一个布尔数组:

public ActionResult Test(bool[] Blanks)
{        }
于 2013-06-30T16:02:14.050 回答