簡體   English   中英

如何在 ASP.net Core 中的控制器中檢索 JSON 數據?

[英]How to retrieve JSON data in controller in ASP.net Core?

我需要使用 JSON 發送數據並保存到 asp.net 控制器中的模型

  //JSON data
        var dataType = 'application/json';
        var data = {
            ID: 'Zaki',                
        }

        console.log('Submitting form...');
        console.log(data);
        $.ajax({
            type: 'POST',
            url: 'Save',
            dataType: 'json',
            contentType: dataType,
            data: data,
            success: function (result) {
                console.log('Data received: ');
                console.log(result);
            }
        });
          

控制器

 [HttpPost]
    public ActionResult Save([FromBody] string ID)
    {
       
        return Json (ID);


    }






          

我在控制台中變空了,它應該是 zaki 並且從那里我想編寫保存代碼...

在此處輸入圖片說明

另一種方法是簡單地使用“動態”類型來處理 json 請求數據。 看一看:

[HttpPost]
public IActionResult YoutMethod([FromBody] dynamic requestData)
{
  Log.Information(requestData.field1);
  Log.Information(requestData.field2);
  // ...

  return Ok();
}

修改代碼數據中的這一行:數據,

數據:JSON.stringify(數據)

將數據發送到Web服務器時,數據必須是字符串,並且JSON.stringify方法將JavaScript對象轉換為字符串。

另一種方法是,不要獲取原始字符串值,而是將參數包裝到這樣的類對象中

public class ParamObj
{
public string ID{get;set;}
}

並在您的控制器中獲得像這樣的對象類型的參數。

public ActionResult Save([FromBody] ParamObj data)

感謝名單

我知道已經將其標記為已回答,但這是另一種方法:

我沒有使用綁定的FromBody屬性。

調節器

    public class JsonRequest
    {
        public string Id { get; set; }
    }

    [HttpPost]
    public ActionResult Save(JsonRequest data)
    {

        return Json(data.Id);
    }

而不是使用dataType,而是使用accept ,您不需要將json轉換為字符串。

為了避免相對路徑出現問題,我也在使用:url:'@ Url.Action(“ Save”,“ Home”)'。

使用Javascript

function send()
{
    //JSON data
    var dataType = 'application/json';
    var data = {
        "id": "Zaki"
    }

    console.log('Submitting form...');
    console.log(data);
    $.ajax({
        type: 'POST',
        url: '@Url.Action("Save", "Home")',                        
        accept: dataType,
        data: data,
        success: function (result) {
            console.log('Data received: ');
            console.log(result);
        }
    });
}

祝您項目順利。

暫無
暫無

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

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