簡體   English   中英

NULL 值同時通過 ZA34A6659BCEAE779F28185E75Z7 將 JSON 數據傳遞給 controller

[英]NULL values while passing JSON data to controller via AJAX

試圖將 JSON 從 View 傳遞到 Controller

{
    "allselected": false,
    "selectedIds": ["", "all"],
    "targetControl": "Studieniva",
    "targetSource": "studienivalist",
    "dependency": [{
        "name": "ShopNo",
        "selectedvalues": "311"
    }, {
        "name": "Institution",
        "selectedvalues": ["all", "UIO"]   // THIS IS COMING AS NULL AT CONTROLLER  . OCCURS ONLY WHEN MULTIPLE ITEMS UNDER dependency
    }]
}

Javascript 發送請求的代碼如下(嘗試同時發出多個請求,並根據每個請求的響應加載一些下拉菜單)

        var targetcontrols_array = targetControl.split(',');
        var targetsource_array = targetSource.split(',');
        const arrOfPromises = targetcontrols_array.map(function(item, index) {
            var control_name = item;
            var source = targetsource_array[index];
            var request_data = JSON.stringify({ allselected: allselected_flag, selectedIds: selectedvalues, targetControl: control_name, targetSource: source, dependency: dependencyOptions });
            console.log("req:"+request_data); //SAMPLE JSON ADDED On TOP
            return new Promise((resolve) => {
                $.ajax({
                    url: action_url,
                    type: 'POST',
                    traditional: true,
                    async: false,
                    data: request_data,
                    contentType: "application/json; charset=utf-8",
                    dataType: 'json',
                    success: function (response) {
                       //process response
                    }
                })
            });
        });
        Promise.all(arrOfPromises); 

MVC controller 動作如下

 [HttpPost]
 public JsonResult CascadingDropDown(DynamicFormSelectModel model)
 {
     model.dependency  values are not coming correctly . Observing that the value of SelectedValues is NULL in some cases
     ( OCCURS ONLY WHEN MULTIPLE ITEMS UNDER dependency )
 }

public class DynamicFormSelectModel
{
    public bool allselected { get; set; }
    public string[] selectedIds { set; get; }
    public string targetSource { set; get; }
    public string targetControl { set; get; }
    public List<DynamicFormDependencyOptions> dependency { set; get; }

}
public class DynamicFormDependencyOptions
{
    public string Name { get; set; }
    public string SelectedValues { get; set; }
}

While trying to read the request model.dependency values, sometimes getting NULL, even if values are passed from View (Example attached JSON passing 2 values "name": "Institution", "selectedvalues": ["all", "UIO"] ,但在 controller 我得到 NULL 在此處輸入圖像描述 . 主要發生在依賴屬性下存在多個項目並且不知道為什么它以 NULL 出現時

    public class DynamicFormDependencyOptions
{
    public string Name { get; set; }
    public string SelectedValues { get; set; }
}

將其更改為

public class DynamicFormDependencyOptions
    {
        public string Name { get; set; }
        public string[] SelectedValues { get; set; }
    }

此代碼將SelectedValues作為字符串 object 但數據采用字符串數組形式使 SelectedValues 成為字符串數組,您將得到它....並相應地更改以下代碼以解析字符串數組,就像您為selectedIds所做的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM