.NET 8 razor 页面中 Ajax post 请求方法绑定失败

问题描述 投票:0回答:1

我遇到问题:我通过 Ajax 向我的处理程序方法发送简单的日期和消费者 ID,但在该方法中,我总是得到 null。我认为问题在于日期。

有人可以帮助我吗?

客户端代码:

consumer2.ConsumerId
var v1 = new Date();
var date = v1.getDate()+ "/" + (v1.getMonth() + 1) + "/" + v1.getFullYear();

// consumer2.datelocal = date;
console.log(consumer2);
console.log("------");
console.log(consumer);

$.ajax({
          type: 'POST',
          url: getRootPath() + '/AjaxHandlers/Details?handler=UpdateConsumer2',
          headers: {
              'RequestVerificationToken': token
          },
            data: JSON.stringify(consumer2),
         // data: JSON.stringify({ Consumer: consumer2, UpdateConsumer: PartyUpdate, ChannelOfContactibility: "MAIL" }),
         // data: JSON.stringify( consumer ),
         contentType: 'application/json; charset=utf-8',

Web服务方式:

public class Consumer2
{
     public Nullable<DateTime> datelocal { get; set; }
     public int ConsumerId { get; set; }
}

public IActionResult OnPostUpdateConsumer2([FromBody] Consumer2 consumer) 
{
    return null;
}
c# ajax asp.net-core razor-pages .net-8.0
1个回答
0
投票

JavaScript 中的 Date 对象在格式为

dd/mm/yyyy
时可能不会被 .NET 自动识别为有效的 DateTime。为了确保正确解析,请使用
yyyy-MM-dd
格式:

var consumer2 = {
    ConsumerId: 123, 
    datelocal: "" 
};
var v1 = new Date();
var date = v1.getFullYear() + "-" + (v1.getMonth() + 1) + "-" + v1.getDate();

consumer2.datelocal = date;
© www.soinside.com 2019 - 2024. All rights reserved.