gpt4 book ai didi

javascript - ASP.net Core 2.1 中的 Knockout js 返回未定义?

转载 作者:行者123 更新时间:2023-12-01 00:16:22 25 4
gpt4 key购买 nike

我的Kcnockout Js有问题,当他尝试返回结果时,他无差别地返回给我,我已经验证了承包商,如果他正在返回我数据,如下图所示,

enter image description here

但是当在 View 中加载值列表时,它会提示我它未定义,如下图所示,

enter image description here

我不知道他为什么向我发送该消息,这是我的 Controller 代码,

public JsonResult GetGender()
{
ServiceResult serviceResult = new ServiceResult();

serviceResult = this._genderServices.GetListGenders();

return Json(serviceResult);

}

这是查看代码,

<h2>Generos</h2>
<hr />
<p data-bind="visible: IsNewButton">
<a href="#" data-bind="click: New" class="btn btn-primary">Crear Nuevo</a>
</p>
<div id="divListGenders" data-bind="visible: ShowResult">
<table class="table">
<thead>
<tr>
<th>
Genero
</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody data-bind="foreach: Genders">
<tr>
<td style="text-align:left" data-bind="text: GenderName"></td>
<td style="text-align:center">
<a href="#" data-bind="click: $parent.Edit" class=" btn btn-warning"><span class="glyphicon glyphicon-edit"></span></a> |
<a href="#" data-bind="click: $parent.Details" class=" btn btn-info"><span class="glyphicon glyphicon-eye-open"></span></a> |
<a href="#" data-bind="click: $parent.Delete" class=" btn btn-danger"><i class="fas fa-trash"></i></a>
</td>
</tr>
</tbody>
</table>
</div>
<div data-bind="visible: IsBackToListButton">
<a href="#" data-bind="click: BackToList" class="btn btn-info">Regresar</a>
</div>
<script src="~/js/Gender.js"></script>

这是返回流派列表的方法,

    var LoadListGenders = function () {
$.ajax({
url: '/AdminGenders/GetGender',
data: null,
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
async: true,
success: function (data) {
if (data.Success) {
genderViewModel.Genders.removeAll();
genderViewModel.Genders(data.Data);
}
else {
alert(data.Data);
}
},
error: function (ex) {
alert('Ocurrión un error, cargando los generos.');
}
});

};

}

我在 asp.net MVC 5 上提供了它,它运行良好,我不知道为什么它在 ASP.NET Core 2.1 中不适合我,我将不胜感激的帮助

最佳答案

在 ASP.NET Core 中,将输出序列化为 JSON 的默认情况是驼峰式,而 ASP.NET MVC 5 的默认情况是 Pascal 式>.

请注意,您帖子中的第一张图片显示的所有属性都是驼峰式:

Object { success: true, message: null, data: Array(1) ... }

data 数组中的项目类似:genderIdgenderName 等。

解决此问题的一种方法是通过应用驼峰式属性名称来更新 javascript 代码和 Knockout 绑定(bind)。
例如

success: function (data) {
if (data.success) {
// ....
}
else {
alert(data.data);
}
}

<小时/>或者,您可以选择配置 Web API 以返回 Pacalcased JSON,例如通过在 Startup ConfigureServices 中添加以下代码:

services
// ...
.AddJsonOptions(options => {
options.JsonSerializerOptions.PropertyNamingPolicy = null;
})
// ...

关于javascript - ASP.net Core 2.1 中的 Knockout js 返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59734601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com