我使用 ASP.NET WEB API 和 jquery 日期时间。
我的问题是:我希望用户能够使用 datepicker 以“dd/MM/yyyy”的格式选择日期。但是当我配置我的 datepicker 这样做(如此处)时,发布到 web api 控制器操作的日期是'01/01/0001 00:00:00'。当我从 datepicker 中删除 'd/M/yy' 的格式化程序时,我能够接收到正确的值,但用户会看到在 MM/dd/yyyy 中选择的日期。
我在 web.config 中将文化设置为“en-GB”,如下所示...
<system.web>
<globalization culture="en-GB" uiCulture="en-GB"/>
</system.web>
这仍然没有帮助。
如果有人想尝试一下,我已经重新创建了这个场景并将项目上传到这里。
我的 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”格式的日期
- 和日期应该以相同的格式到达控制器。
谢谢