Javascript onchange函数更改 - 到/在url字符串?

时间:2011-10-13 09:27:57

标签: javascript string url date format

我有一个mvc3网页,它带有一个代表日期的url参数,即dd-MM-yyyy

public ActionResult Calendar(string startDate, string UserId, string status, bool myPage = false)

我在日历视图中有一个局部视图,每当ddl被更改时调用onchange事件,表示方法中的status参数,并且也传递给url。

我的日历视图的地图路线如下所示:

routes.MapRoute(
            "TimesheetCalendar", // Route name
            "Timesheet/Calendar/{startDate}/{UserId}", // URL with parameters
            new { controller = "Timesheet", action = "Calendar", UserId = UrlParameter.Optional } // Parameter defaults
        );

我的javascript onchange事件(在包含的局部视图中调用)如下所示:

<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';

}

在我的控制器中的日历get方法中,我将Viewbag.startdate设置为date.ToString(dd-MM-yyyy)

在某些时候它工作正常。当我更改ddl状态时,页面会根据状态刷新日历和部分视图。但是有些时候(似乎每当我的日历周是本周),当我更改 ddl 时,浏览器会重定向到404 error,而不是日期为在网址中显示dd-MM-yyyy,它显示为dd/MM/yyyy,从而完全搞砸了网址。

我是javascript的新手,不知道为什么会这样做?我希望我已经提供了足够的关于我的代码的信息。任何人都知道为什么表示日期的字符串会突然出现连字符 - 更改为破折号/?

任何帮助非常感谢

1 个答案:

答案 0 :(得分:0)

对不起。刚刚意识到日期用户ToString的默认slash/方法以及在视图及其部分视图之间来回传递日期之间的某个位置我设置了日期ToString()而不是{ {1}}