【问题标题】:Datepicker format problemm in ASP.NET Web ApiASP.NET Web Api 中的日期选择器格式问题
【发布时间】:2012-10-20 08:17:34
【问题描述】:

我使用 ASP.NET WEB API 和 jquery 日期时间。

我的问题是:我希望用户能够使用 datepicker 以“dd/MM/yyyy”的格式选择日期。但是,当我配置我的 datepicker 时(如 here 所做的那样),发布到 web api 控制器操作的日期是 '01/01/0001 00:00:00'。当我从日期选择器中删除 'd/M/yy' 的格式化程序时,我能够接收到正确的值,但用户会看到在 MM/dd/yyyy 中选择的日期。

我在 web.config 中将文化设置为“en-GB”,如下所示...

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

这仍然没有帮助。

我已经重新创建了这个场景并上传了项目here,如果有人想尝试一下。

我的 web-api 控制器如下所示

public class ValuesController : ApiController
{
    // POST api/values
    public void Post(ResponseModel model)
    {
        string culture = CultureInfo.CurrentCulture.DisplayName;
        if (model != null)
        {
            string name = model.Name;
            DateTime startDate = model.StartDate;
            DateTime endDate = model.StartDate;
        }
    }
}

我的视图如下

    $(document).ready(function () {

    $("#startDate").datepicker({});
    $("#endDate").datepicker({});

//        $("#startDate").datepicker({ dateFormat: "dd/m/yy" });
//        $("#endDate").datepicker({ dateFormat: "dd/m/yy" });

    $("#submitBtn").bind("click", function () {

        var postData = {
        name: $("#fullName").val(),
        startDate: $("#startDate").val(),
        endDate: $("#endDate").val()
        };

        var jsonData = JSON.stringify(postData);
        console.log(jsonData);

        $.ajax({
        url: 'api/values/',
        type: 'POST',
        data: jsonData,
        contentType: "application/json;charset=utf-8",
        success: function (data) {
        }
        });
    });

    });

</script>

<div>
<p>
<b>Name : </b> <input type="text" id="fullName" />
</p>
<p>
<b>Start Date : </b> <input type="text" id="startDate" />
</p>
<p>
<b>End Date : </b> <input type="text" id="endDate" />
</p>
<input type="submit" value="Submit these values" id="submitBtn"/>
</div>

请有人帮我解决这个问题。

所以最终我想要的是

  • 用户应该能够选择“dd/MM/yyyy”格式的日期
  • 和日期应该以相同的格式到达控制器。

谢谢

【问题讨论】:

    标签: asp.net-mvc datepicker asp.net-mvc-4 asp.net-web-api jquery-ui-datepicker


    【解决方案1】:

    似乎这是 JSON 日期的典型问题。

    假设,您更改了日期选择器的日期格式,它错误地传入 Json,因此在 Web API 控制器中被错误地解析。因此,当您“默认”更改选择器中的日期格式时,一切正常。

    看看关于这个问题的不错的博客文章

    http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx

    应该有帮助。

    【讨论】:

      【解决方案2】:

      将我的日期时间字段更改为字符串,然后将日期作为字符串发布到我的控制器。然后在控制器中使用 DateTime.Parse()

      将此字符串转换为日期

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-30
        • 1970-01-01
        • 1970-01-01
        • 2017-04-21
        • 1970-01-01
        • 1970-01-01
        • 2012-11-28
        • 1970-01-01
        相关资源
        最近更新 更多