2011-08-26 178 views
1

我想發佈數據到服務器。在我選中的格式中複選框並從中檢索值。我用下面的代碼:jquery ajax asp.net mvc

 


    $(".DownloadSelected").click(function() { 
      var values = []; 
      var chks = $(':checkbox[name="ids"]:checked'); 

      $(chks).each(function (i) { 
       values[i] = $(this).val(); 
      }); 

      $.post("/Documents/DownloadSelected/", { ids: values }); 
     }); 

在控制器我有此:

 

    [HttpPost] 
     public ActionResult DownloadSelected(int[] ids) 
     { 
     } 

的問題是,在控制器i的INT [] IDS陣列取回空值。 任何人都可以幫助我嗎?

回答

0

JavaScript代碼中的值不會作爲int數組傳遞,請嘗試將每個值解析爲int parseInt($(this).val());

+0

這是一個遺憾,但它不想工作 – Alex

0

試試這個

$(".DownloadSelected").click(function() { 
     var chks = $(':checkbox[name="ids"]:checked'); 

     var values= $(chks).each(function (i) { 
      return i.val(); 
     }); 
     values.join(','); 
     $.post("/Documents/DownloadSelected/", { ids: values }); 
    }); 

和控制器

[HttpPost] 
    public ActionResult DownloadSelected(List<int> ids) 
    { 
    } 
+0

謝謝,夥計們,我已經使用通常的$阿賈克斯()函數,而不是$決定這個問題.post() – Alex

+0

問題是,我必須在$ .ajax()函數的ajax選項中使用{traditional:true}。 – Alex

0

你應該定義一個複雜的類型和定義屬性INT []。

public class PostModel 
{ 
    public int[] Ids { get; set; } 
} 

和控制器

[HttpPost] 
public ActionResult DownloadSelected(PostModel postModel) 
{ 
}