【发布时间】:2021-11-06 15:10:35
【问题描述】:
我在 ASP.Net Core 5 中有一个 Web 应用程序,它也使用 .Net Core 中的 Web API。它以 JSON 格式返回的内容必须从名为landing.js 的文件中读取。问题是数据到达变量(数据)但我无法访问它的方法,它总是设计未定义
我会从控制器以 String 形式返回结果吗?它实际上应该以 JSON 格式到达 JS。
我的控制器:
public async Task<IActionResult> GetPodcastLandingPortada()
{
List<PPodcast> ppodcastPortada = new List<PPodcast>();
string jsonresultado = "";
using (var httpClient = new HttpClient())
{
using (var response = await httpClient.GetAsync("https://localhost:44379/api/Podcast/ObtenerPodcastPortadaPrincipal"))
{
string apiResponse = await response.Content.ReadAsStringAsync();
//ppodcastPortada = JsonConvert.DeserializeObject<List<PPodcast>>(apiResponse);
jsonresultado = JsonConvert.DeserializeObject(apiResponse).ToString();
}
}
return Ok(jsonresultado);
}
我的文件landing.js
window.onload = function () {
_getPortadaPrincipal();
} 函数 _getPortadaPrincipal() {
let ruta = '/podcast/GetPodcastLandingPortada';
$.ajax({
type: 'GET',
url: ruta,
contentType: JSON,
processData: false,
success: function (data) {
console.log(data.titulo); //this is where it returns undefinned, but the data variable is loaded
$("#portadaPrincipal").html(row);
console.log(data);
},
error: function () {
alert("Error en la carga de la Portada");
},
});
}
【问题讨论】:
-
嗨@Daniel Lazarte,你为什么要反序列化json并将反序列化的模型解析为字符串?为什么不直接使用
apiResponse?您还需要首先检查成功功能中的data是什么。 -
@Rena 你好,那么正确的方法是什么?是,如果我不返回字符串,它永远不会发生 Return
-
嗨@Daniel Lazarte,只需
return Ok(apiResponse);并将其移到using中的string apiResponse = await response.Content.ReadAsStringAsync();之后。 -
另外,能否请您在成功功能中分享您的数据?
-
如果它有效,你是对的,我将它转换为无意义的字符串。非常感谢您的赞赏。
标签: javascript jquery json asp.net-mvc asp.net-core