我有一個簡單的 jQuery 函式,它呼叫一個控制器動作,它應該回傳一個 JSON 字串。但是,我無法獲取字串的值。
彈出框只是說“未定義”。
我檢查了格式,還可以在控制臺中看到 JSON 正確傳遞。我確信我遺漏了一些完全明顯但找不到的東西!
我的 jQuery 函式如下
setInterval(function () {
$.ajax({
url: "/ImportFile/ImportStatus",
type: "POST",
//data: "ID=" teamID,
dataType: "json", // type of data you're expecting from response
success: function (json) {
alert(json.percentcomplete);
},
error: function (error) {}
});
}, 10000);
和我的控制器動作
[HttpPost]
public ActionResult ImportStatus()
{
string json = "{\"percentcomplete\": 10}";
return Json(new { json = json });
}


uj5u.com熱心網友回復:
您應該反序列化 JSON 字串并將其作為物件回傳。
using System.Text.Json;
using System.Text.Json.Serialization;
[HttpPost]
public ActionResult ImportStatus()
{
string json = "{\"percentcomplete\": 10}";
return Json(JsonSerializer.Deserialize<ImportStatusResult>(json));
}
public class ImportStatusResult
{
[JsonPropertyName("percentcomplete")]
public int PercentComplete { get; set; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493138.html
標籤:C# jQuery json asp.net-mvc
