事物的 javascript 方面如下所示:
var self = this;
self.services = ko.observableArray([]);
self.saveServices = function () {
if (self.services().length > 0) {
var obj = JSON.stringify({ services: self.services() });
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: "POST",
url: '/Business/SaveServices',
data: obj,
success: function (data) {
$("#saveModal").modal('show');
if (!data) {
$("#saveDetails").text('Processing error, please try again or email us.');
return;
} else if (data === "saved") {
$("#saveDetails").text('Saved changes.');
setTimeout(function () {
$('#saveModal').modal('hide');
}, 2500);
} else {
$("#saveDetails").text(data);
}
},
error: function (error) {
$("#saveModal").modal('show');
$("#saveDetails").text('Processing error, please try again or email us.');
}
});
}
}
然后我的控制器看起來像這樣:
[HttpPost]
public async Task<JsonResult> SaveServices([FromBody]SaveServicesRequest saveServicesRequest)
{
try
{
if (User.Identity.IsAuthenticated)
{
return Json("saved");
}
return Json("User is not authenticated.");
}
catch (Exception ex)
{
logger.Error(ex ". Users Email address: " User.Identity.Name);
return Json("Processing error, please try again or email us.");
}
}
public class SaveServicesRequest
{
public List<services> services { get; } = new List<services>();
}
public class services
{
public string service { get; set; }
}
我正在點擊控制器,但沒有回傳我期望的專案陣列(saveServicesRequest 為空),我似乎無法以任何形式傳遞陣列。有人看到做錯了什么嗎?正在向客戶端發送資料/json,認為問題可能在于如何構建 json 并接收它。
uj5u.com熱心網友回復:
問題是您正在初始化services到SaveServicesRequest. 屬性還應該具有用于模型系結的公共 getter和setter。
嘗試將您的課程更新為:
public class SaveServicesRequest
{
public List<services> services { get; set; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/406155.html
標籤:
下一篇:在較小的螢屏上顯示文本
