jQuery DateTimePicker:使用jQuery $ .Post()将日期时间数据发布到MVC3动作中的ViewModel

Gig*_*m02 3 c# jquery jquery-ui datetimepicker asp.net-mvc-3

我正在尝试使用jQuery DateTimePicker将我的日期从输入字段发布到我的ViewModel中的DateTime属性.我一直在解析1/01/0001 0:00:00.我们来看看我的viewmodel:

public class GameViewModel
{
    [Display(Name = "Home team")]
    public virtual String Home { get; set; }

    [Display(Name = "Away team")]
    public virtual String Away { get; set; }

    [Display(Name = "Kickoff time")]
    [DataType(DataType.DateTime)]
    public virtual DateTime GameTime { get; set; }

    [Display(Name = "Standard sharing on?")]
    public virtual Boolean IsStandardSharing { get; set; }

    //Hidden
    public virtual Guid PeriodId { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

这是我输入字段的剃刀:

@Html.EditorFor(m => m.GameTime)
Run Code Online (Sandbox Code Playgroud)

最后是我的JavaScript

$('#GameTime').datetimepicker({
    constrainInput: true,
    firstDay: 1,
    monthNames: ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'],
    monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],
    dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
    dayNamesMin: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],
    timeText: "Tijdstip",
    hourText: "Uur",
    minuteText: "Minuut",
    currentText: "Nu",
    closeText: "Klaar",
    stepMinute: 5,
    hour: 12

});

$('#btnAddGame').click(function () {
    var testPeriodId = "245f83a2-52b5-4a21-815e-a0b40020d7ff";
    var valDdlHome = $('#Home').val();
    var valDdlAway = $('#Away').val();
    var valTxtGameTime = Date($('#GameTime').val());

    var valRdnIsStandardSharing = $('#IsStandardSharing').val();
    var postUrl = "/period/saveperiodgame/";

    $.post(
        postUrl,
        { Home: valDdlHome, Away: valDdlAway, GameTime: valTxtGameTime, IsStandardSharing: valRdnIsStandardSharing, PeriodId: testPeriodId },
        function (data) {
            if (data.Status == 200) {
                console.log("Game added. Id:" + data.Data);
                if ($('#emptyText').length > 0) {
                    $('#emptyText').hide();
                }
                MijnProno.fn.BuildPeriodGameTableRow(valTxtGameTime, valDdlHome, valDdlAway, data.Data);
            } else if (data.Status == 500) {
                console.log("Failed to add game");
            } else {
                console.log("Fault with Javascript");
            }
        }, "json"
    );
});
Run Code Online (Sandbox Code Playgroud)

我整个下午一直在阅读和尝试回答,但没有设法让它工作(我总是等到很长时间才能问这样的问题,因为可能有重复).

在阅读了一些高度评价的帖子之后,我想我必须像/ Date(1224043200000)/格式一样发布我的日期,让我的ViewModel理解它.这是正确的吗?如果是这样,我如何才能将我的mm/dd/yyyy hh:ss格式转换为json?

Gig*_*m02 6

最后,我找到了解决这个问题的方法.一个博客文章由Scott Hanselman在开车送我去解决.我想我必须尽力解析我的约会,除了这个

//JAVASCRIPT CODE
var valTxtGameTime = $('#GameTime').val();    
new Date(valTxtGameTime).toJSON()
Run Code Online (Sandbox Code Playgroud)

检查我的HTTP帖子,日期现在发布为...

2012-08-24T19:50:00.000Z
Run Code Online (Sandbox Code Playgroud)

...并在我的ViewModel中正确接收.