У меня есть веб-страница mvc3, которая принимает параметр url, представляющий дату, т.е. dd-MM-гггг
public ActionResult Calendar(string startDate, string UserId, string status, bool myPage = false)
У меня есть частичное представление в представлении календаря, которое вызывает событие onchange всякий раз, когда ddlизменяется, представляя параметр состояния в методе, и также передается в URL.
Мой маршрут карты для представления календаря выглядит следующим образом:
routes.MapRoute(
"TimesheetCalendar", // Route name
"Timesheet/Calendar/{startDate}/{UserId}", // URL with parameters
new { controller = "Timesheet", action = "Calendar", UserId = UrlParameter.Optional } // Parameter defaults
);
И мое событие обмена javascript (вызывается в отдельном частичном представлении) выглядит следующим образом:
<script type="text/javascript">
$(function () {
$(".ddl").change(function () { changePage(); });
});
function changePage() {
location.href = '@Url.Action("Calendar", "Controller", new { startDate = @ViewBag.startDate, UserId = (string)null })/' + '@ViewBag.userId' + '?status=' + $('#ControllerStatus').val() + '&myPage=@ViewBag.myPage';
}
В методе получения календаря в моем контроллере я установил Viewbag.startdate как date.ToString(dd-MM-yyyy)
.
Работает отлично, иногда.И когда я меняю статус ddl, страница обновляла календарь и частичное представление в соответствии со статусом.Однако иногда (кажется, что неделя моего календаря - текущая неделя), когда я изменяю ddl , браузер перенаправляет на 404 error
, а не на дату как dd-MM-yyyy
в URL он отображается как dd/MM/yyyy
и, таким образом, полностью портит URL.
Я новичок в javascript и понятия не имею, почему он это сделал?Я надеюсь, что дал достаточно информации о своем коде.Кто-нибудь знает, почему строка, представляющая дату, внезапно обретает дефисы - меняется на тире /?
Любая помощь с благодарностью