Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc jquery post中未维护日期格式_Asp.net Mvc_Jquery_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc jquery post中未维护日期格式

Asp.net mvc jquery post中未维护日期格式,asp.net-mvc,jquery,asp.net-mvc-4,Asp.net Mvc,Jquery,Asp.net Mvc 4,在我在VS2010中开发的MVC4项目中,我有一个屏幕,其中有一个下拉列表,显示文本的日期为dd-MMM-yyyy,基本值为dd-mm-yyyy 在发布数据的函数中,当我发出警报时,我可以看到所选值是dd-mm-yyy alert($("#dropdwn_BirthDateVal").val()); 上面的这一行以dd-mm-yyy格式显示了所需的我的日期 但是,当我尝试将该值发布到控制器时,使用相同的方法 $.ajax({ type: "POST",

在我在VS2010中开发的MVC4项目中,我有一个屏幕,其中有一个下拉列表,显示文本的日期为dd-MMM-yyyy,基本值为dd-mm-yyyy

在发布数据的函数中,当我发出警报时,我可以看到所选值是dd-mm-yyy

  alert($("#dropdwn_BirthDateVal").val());
上面的这一行以dd-mm-yyy格式显示了所需的我的日期

但是,当我尝试将该值发布到控制器时,使用相同的方法

  $.ajax({
            type: "POST",
            url:"@Url.Content("~/Home/GetUserDetails")",
            async:false,
            dataType: "JSON",
            data: {
                 //.....other string and integer values
                 //.....that go thru properly
                "myDto.DOB":  $("#dropdwn_BirthDateVal").val()
            },
            error: function (error) {
                alert(error);

           },

           ..... remaining code here 
…日期为
1/1/0001 12:00:00 AM

我要发布到的控制器操作“GetUserDetails”有一个名为UserVM的ViewModel类作为其参数。UserVM有一个名为MyDto的dto类。MyDto中有一个日期属性,名为DOB,类型为DateTime。MyDto还有其他属性。字符串和整数值正确通过


我错过了什么

将日期发送到服务器时,需要将日期格式化为ISO-8601,例如
2011-12-19T15:28:46.493Z


这个答案展示了实现这一点的多种方法,我最喜欢的是
JSON.parse(JSON.stringify(new Date())
,但它不支持IE7。

在将日期发送到服务器时,需要将日期格式化为ISO-8601,例如
2011-12-19T15:28:46.493Z


这个答案展示了实现这一点的多种方法,我最喜欢的是
JSON.parse(JSON.stringify(new Date())
,但它不支持IE7。

接收到的
DateTime
变成
1/1/0001 12:00:00 AM
,因为无法正确解析日期格式(dd-mm-yyyy)。当框架无法解析日期/时间字符串时,结果就是上面的结果

结果取决于机器的定位。例如,在
en-US
本地化下,.NET framework希望默认情况下日期格式为
MM/dd/yyyy
。但您可以按如下方式明确指定日期的格式

using System.Globalization;

// dateString is the string in your dd-MM-yyyy format
public void GetValidDate(string dateString) 
{
    DateTime parsedDateTime;
    DateTime.TryParseExact(dateString, "dd-MM-yyyy", null, 
                               DateTimeStyles.None, out parsedDateTime)
}

查看。

由于无法正确解析日期格式(dd-mm-yyyy),接收到的
DateTime
变成
1/1/0001 12:00:00 AM
。当框架无法解析日期/时间字符串时,结果就是上面的结果

结果取决于机器的定位。例如,在
en-US
本地化下,.NET framework希望默认情况下日期格式为
MM/dd/yyyy
。但您可以按如下方式明确指定日期的格式

using System.Globalization;

// dateString is the string in your dd-MM-yyyy format
public void GetValidDate(string dateString) 
{
    DateTime parsedDateTime;
    DateTime.TryParseExact(dateString, "dd-MM-yyyy", null, 
                               DateTimeStyles.None, out parsedDateTime)
}

查看。

可能您的服务器端封送员不认识或不希望“dd-mm-yyyy”作为有效的日期模式。我没有在.net中工作过,是否有办法在您的数据中指定要使用的日期模式?可能您的服务器端封送员不认识或不希望“dd-mm-yyyy”作为有效的日期模式。我没有在.net中工作过,是否有办法在数据中指定要使用的日期模式?如果将其转换为字符串并发送给控制器,则分配给它的参数类型为DateTime。会不会有问题?我现在不在我的开发箱尝试它。不,.net序列化程序将知道如何根据分配给的类型和输入字符串的格式处理oy。如果将其转换为字符串并发送给控制器,则分配给它的参数的类型为DateTime。会不会有问题?我现在不在我的开发箱尝试它。不,.net序列化程序将知道如何根据被分配的类型和输入字符串的格式来处理oy。谢谢你的回复,实际上,我知道它没有被解析。为什么它没有被解析,如何修复它是我一直在寻找的。我在开发pc上将位置设置更改为US、UK、FR,所有这些都具有相同的效果。日期仍然是1/1/0001 12:00:00 AM谢谢你的回复,事实上,我知道它没有被解析。为什么它没有被解析,如何修复它是我一直在寻找的。我在开发pc上将位置设置更改为US、UK、FR,所有这些都具有相同的效果。日期仍然是凌晨1/1/0001 12:00:00