繁体   English   中英

如何通过Ajax发布将JavaScript中的Date对象从JavaScript传递/映射到C#MVC控制器操作中的DateTime对象?

[英]How to pass/map Date object from JavaScript to DateTime object in C# MVC controller action through ajax post?

我正在从客户端发布 JavaScript日期对象 ,并在C#控制器操作中接收它。 在C#控制器操作中,对象被映射到C# DateTime对象

但是DateTime对象没有从javascript date对象获取确切的值。

它显示DateTime的最小值 ,即

01-01-0001 12:00:00 AM

这是我的脚本代码:

var laraHistory = {
        HistoryId: historyId,
        CompanyId: companyId,
        ChangedDate: new Date(Date.parse(changedDate)), //here is how i am setting the date
        LaraId: laraId,
        Comments: comments,
        ChangedById: changedById,
        IsDeleted: true
    };
    $.ajax({
        type: "POST",
        url: "/Manage/HideLaraHistory",
        data: JSON.stringify({ companyLaraHistory: laraHistory }),
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function() {
            window.location.reload();
        }
    });
  • 这是我的客户端断点截屏:

在此处输入图片说明

  • 这是我的C#控制器操作屏幕截图:

在此处输入图片说明

这是我的ViewModel类:

public class CompanyLaraHistoryViewModel
{
    public int HistoryId { get; set; }
    public int CompanyId { get; set; }
    [Display(Name = "Company Name")]
    public string CompanyName { get; set; }
    [Display(Name = "LARA")]
    public byte LaraId { get; set; }
    public LARA Lara { get; set; }
    [Display(Name = "Changed Date")]
    public DateTime ChangedDate { get; set; }
    public int ChangedById { get; set; }
    [Display(Name = "Comments")]
    public string Comments { get; set; }
    public bool IsDeleted { get; set; }
}

这可能是什么原因? js日期对象不能映射到c#日期时间对象吗?

谁能给我解决方案?

考虑解决该问题的不同方法。 在我的应用程序中,我更喜欢以某种恒定格式将日期或时间发送到服务器。

例如,如果在JS中我的日期是2015年1月1日,则将其以以下格式YYYY-MM-DD发送到服务器,然后在服务器上将其解析为C#/ any_other_language Date对象。

它需要使用知道这种格式的客户端服务器适配器。 从服务器获取日期时,我也这样做。 我有一个将字符串转换为JS Date对象的适配器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM