亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在沒有表單的情況下將字符串數組發布到ASP.NETMVC控制器?

如何在沒有表單的情況下將字符串數組發布到ASP.NETMVC控制器?

森林海 2019-07-26 15:14:28
如何在沒有表單的情況下將字符串數組發布到ASP.NETMVC控制器?我正在創建一個小應用程序來教自己ASP.NETMVC和JQuery,其中一個頁面是可以選擇的項目列表。然后,我想按一個按鈕,使用JQuery的POST函數,向我的控制器發送一個列表(或類似的內容),其中包含所選項目的ID。我設法獲得了一個數組,其中包含了所選元素的ID,現在我想發布它。我可以這樣做的一種方法是在頁面中有一個帶有隱藏值的虛擬表單,然后用所選的項設置隱藏的值,并發布該表單;不過,這看起來很粗糙。通過將數組直接發送到控制器,是否有更干凈的方法來實現這一點?我嘗試了一些不同的東西,但看起來控制器無法映射它正在接收的數據。以下是目前為止的代碼:function generateList(selectedValues) {    var s = {       values: selectedValues //selectedValues is an array of string    };    $.post("/Home/GenerateList", $.toJSON(s), function() { alert("back") }, "json");}然后我的控制器看起來像這樣public ActionResult GenerateList(List<string> values){     //do something}我得到的只是控制器參數中的“NULL”.有小費嗎?3 回答
查看完整描述

3 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

我修改了我的響應以包括我所做的測試應用程序的代碼。

更新:我更新了jQuery,將“傳統”設置為true,這樣它將再次工作(per@dustinDavis‘答案)。

首先,javascript:

function test(){
    var stringArray = new Array();
    stringArray[0] = "item1";
    stringArray[1] = "item2";
    stringArray[2] = "item3";
    var postData = { values: stringArray };

    $.ajax({
        type: "POST",
        url: "/Home/SaveList",
        data: postData,
        success: function(data){
            alert(data.Result);
        },
        dataType: "json",
        traditional: true
    });}

下面是我的控制器類中的代碼:

public JsonResult SaveList(List<String> values){
    return Json(new { Result = String.Format("Fist item in list: '{0}'", values[0]) });}

當我調用javascript函數時,我會收到一個警告,上面寫著“列表中的第一項:‘item 1’”。希望這能幫上忙!



查看完整回答
反對 回復 2019-07-27
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

不要將數據作為數組發布。若要綁定到列表,應為每個鍵提交具有相同值的鍵/值對。

您不應該需要一個表單來完成這個任務。您只需要一個鍵/值對的列表,您可以在對$.post的調用中包含它。



查看完整回答
反對 回復 2019-07-27
  • 3 回答
  • 0 關注
  • 304 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號