簡體   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