URL中的日期值因MVC GET请求而损坏

时间:2011-07-10 06:35:05

标签: javascript asp.net-mvc asp.net-mvc-3

当我检测到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)

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

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上。

1 个答案:

答案 0 :(得分:2)

getYear()返回自1900年以来的年数。请改用getFullYear()

getMonth()基于零,因此1月= 0,2月= 1

getDay()返回星期几的基于零的整数表示,例如星期日= 0,星期一= 1.您想使用返回月份日期的getDate()

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