【发布时间】:2020-02-24 22:36:42
【问题描述】:
参数中的嵌套对象值不跟随。如何在控制器的 actionmethod 中获取包含嵌套值的完整对象?
当我调用ajac方法时,图片上红圈内的对象中有值。但不跟随在控制器中
mapHub.client.requestForHelpInClient = function (requestDetails) {
debugger;
$.ajax({
type: "GET",
url: '@Url.Action("RequestPartialView", "Supplier")',
data: requestDetails,
success: function (response) {
$("#Request").html(response);
},
error: function (error) {
console.log(error);
}
}); }
function requestForHelp() {
requestDetails = {
CustomerId: @Model.Customer.CustomerID,
NumberOfHours: $("#numberOfHoursTextBox").val(),
TypeOfMachine: $("#typeOfMachineDropDownMenu").children("option:selected").val(),
CustomerLocation: CustomerPosition,
NearestSupplierList: nearestSuppliers
//StartDate: $( "#startDate" ).val(),
//EndDate: $( "#endDate" ).val(),
}
mapHub.server.requestForHelp(requestDetails);
public class RequestDetails
{
public int CustomerId { get; set; }
public Customer Customer { get; set; }
public MapClient CustomerLocation { get; set; }
public int NumberOfHours { get; set; }
public string TypeOfMachine { get; set; }
public List<MapClient> NearestSupplierList { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
信号中心
public void RequestForHelp(RequestDetails requestDetails)
{
requestDetails.Customer = Service.CustomerService.GetCustomerById(requestDetails.CustomerId);
Service.SupplierService.GetAspNetUserIDBySupplierID(requestDetails.NearestSupplierList[0].ClientId);
Clients.User(supplierAspNetUserID).requestForHelpInClient(requestDetails);
}
【问题讨论】:
-
你能把序列化的JSON如何存储在
requestDetails中吗? -
什么意思?我添加了创建 requestdetails @user1672994 的 js 代码
-
在服务器端代码中,
CustomerId是Customer对象的一部分,但似乎在发送时,它是RequestDetails的直接属性。客户端的 Json 是否应该遵循服务器 Model 类所需的架构? -
是的,customerid 既在客户中(在 requestDetails 中),又在 requestDetails 中是它自己的属性。我添加了一些可能有帮助的代码
-
我没看到,你在
requestForHelp方法中传递了Customer对象;这就是接收模型中对象的属性为空的原因。
标签: javascript c# ajax asp.net-mvc signalr