Javascript重定向连接url linstead重定向

时间:2017-07-03 05:38:24

标签: javascript c# jquery asp.net-mvc redirect

每当从文本框更新值时,我想调用控制器操作。

请注意,此脚本位于将从Dispatch / Index控制器操作返回的同一视图中

我尝试这样做:

<script>
    $('#deliveryDate').change(function () {
        var date = $('#deliveryDate').val();
        var sDate = date.split('/');
        location.href = 'dispatch/' + sDate[0] + sDate[1] + sDate[2];
    });
</script>

它在第一次更改值时完美运行(即页面重定向到/dispatch/12122016)。

然而,当我再次更改该值时,它会重定向到/dispatch/dispatch/13122016,因此该值只会保持连续,这当然会产生错误。

我尝试将重定向行转换为location.href = '@Url.Action("Index", "Dispatch")/' + sDate[0] + sDate[1] + sDate[2];,但现在它只是将新日期连接到网址而不是重定向我需要的方式...(即导航到/dispatch/12122016/13122016

有没有办法在不包含文字网址的情况下执行此操作?

如何在重定向我需要的操作之前“清除”当前网址(应该只是dispatch/12122016

2 个答案:

答案 0 :(得分:2)

只需在URL中添加正斜杠,这应始终指示网址更改始终是绝对的。

作为奖励:我还将/dispatch之后的日期连接更改为连接。

$('#deliveryDate').change(function () {
    var date = $('#deliveryDate').val();
    location.href = '/dispatch/' + date.split('/').join('');
});

答案 1 :(得分:0)

通过附加正斜杠来尝试此操作。因为你在每个重定向上连接调度字符串

<script>
    $('#deliveryDate').change(function () {
        var date = $('#deliveryDate').val();
        var sDate = date.split('/');
         Var URL =  '/dispatch/' + sDate[0] + sDate[1] + sDate[2];
        Window.location.href = URL
    });
</script>