发布到控制器时更改日期格式

时间:2016-02-08 07:20:20

标签: c# asp.net-mvc asp.net-mvc-4

我希望31-12-2015 Date formate进入我的控制器。但在我的情况下,当我尝试在调试模式下将我的日期从视图发布到控制器时,它向我展示了mm-dd-yyyy(12-31-2015)现在如何获得我的合成。

例如,当我输入以下日期时

1)12-30-2016我进入我的控制器

2)30-12-2016我没有把日期记录到我的控制器中。

模型

[Required(ErrorMessage = "Enter Date")]
[DisplayName("Payment Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/mm/yyyy}")]
public DateTime Date { get; set; }

查看

@Html.TextBoxFor(model => model.Date,new { @class = "k-input datepickerbootstrap", @required = "required", @id = "Date", @name = "Date" })

Javascript

$('.datepickerbootstrap').datepicker({
            autoclose: true,
            format: 'dd-mm-yyyy',
        });

1 个答案:

答案 0 :(得分:0)

很可能您使用en-US种使用MM/dd/yyyy日期格式的文化。您需要将服务器文化更改为使用dd/MM/yyyy格式的文化(例如en-GB

您可以通过网络配置执行此操作:

<configuration>
    <system.web>
        <globalization uiCulture="en-GB" culture="en-GB" />
    </system.web>
</configuration>

修改

正如斯蒂芬在评论中指出的那样,在datepicker配置中使用的格式必须与服务器文化定义的格式匹配,所以 如果我们以en-GB文化为例,因为它的日期格式为dd/MM/yyyy,则datepicker格式必须相同:

$('.datepickerbootstrap').datepicker({
            autoclose: true,
            format: 'dd/mm/yyyy',
        });