URL中的日期值在MVC get请求中损坏

Date values in URL get corrupted for MVC GET request

本文关键字:get 请求 损坏 MVC 日期 URL      更新时间:2023-09-26

当我检测到客户端对Telerik MVC DatePicker的更改时,我使用以下代码向控制器发送get请求。

function RaceDate_onChange() {
    var pickedDate = $(this).data('tDatePicker').value();
    $.get("/RaceCard/Details?year=" + pickedDate.getYear() + "&month=" + pickedDate.getMonth() + "&day=" + pickedDate.getDay());
}
[HttpGet]
public ActionResult Details(int year, int month, int day)

我正在用d/m/y值2011/7/10构建URL,然而到达控制器动作的d/m/y值是111/6/0。如果我检查HttpContext。请求对象在我的控制器的断点处,我观察到这些可疑的值:

Url: {http://localhost:59927/RaceCard/Details?year=111&month=6&day=0}
UrlReferrer: {http://localhost:59927/RaceCard/Details?year=2011&month=7&day=10}

我认为这纯粹是一个JS问题,但我不知道从哪里开始,除了这里的SO。

getYear()返回自1900年以来的年数。使用getFullYear()代替。

getMonth()是基于零的,所以一月= 0,二月= 1

getDay()返回一个以零为基础的整数表示的星期几,例如Sunday = 0, Monday = 1。您需要使用getDate(),它返回月份的日期

var d = new Date();
alert(d.getYear() + '-' + d.getMonth() + '-' + d.getDay());
alert(d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate());