成功调用Jquery Ajay方法后,页面未重定向到视图

时间:2018-12-11 17:21:28

标签: jquery ajax asp.net-mvc

我正在使用Jquery ajax方法从视图中调用控制器。控制器操作方法被成功调用,它从数据库中检索数据并在相应的视图中显示数据,但最后该视图未生成其显示相同视图的视图。

这是我调用动作方法的Jquery代码。

const t = fullname.replace(/[^a-zA-Z- ]/g, '')
if(t) { /* do the rest */ } else return ''

它调用了此操作方法。

<script type="text/javascript">
        $(document).ready(function () {
            $('#btn_Search').click(function (e) {
                var category = $("#ddl_Category option:selected").text();
                var location = $('#txtSource').val();
                $.ajax({
                    url: "/Classified/GlobalSearch",
                    type: 'GET',
                    data: { searchcategory: category, Location: location },

                    success: function (data) {
                        alert("Hi");
                    },
                });
            });

     });
</script>

最后,数据也在全局搜索视图中设置。但是,观点并没有到来。

为检查通话是否成功,我发出了一条喜讯:

enter image description here

有人可以建议我需要更改什么吗?

2 个答案:

答案 0 :(得分:0)

尝试一下:

$.ajax({
url: "/Classified/GlobalSearch",
type: 'GET',
data: { searchcategory: category, Location: location },
success: function (data) {
    alert("Hi");
    window.location.href = "/page/xyz"; // Try this line after alert.
},
});

答案 1 :(得分:0)

正如前面提到的@HereticMonkey一样,AJAX回调旨在通过加载部分视图而保留在同一页面中。如果要从客户端脚本重定向到另一个页面,则必须使用分配有预期URL字符串的location.href,而完全不使用AJAX:

$(document).ready(function () {
    $('#btn_Search').click(function (e) {
        var category = $("#ddl_Category option:selected").text();
        var location = $('#txtSource').val();

        window.location.href = '@Url.Action("GlobalSearch", "Classified")' + '?searchcategory=' + category + '&Location=' + location;
    });
});

另一种重定向的方法是使用标准格式的提交(使用POST方法)和使用RedirectToAction包含来自服务器端变量的路由参数:

// POST controller action example

string category = "somecategory";
string location = "somelocation";

return RedirectToAction("GlobalSearch", "Classified", new { searchcategory = category, Location = location });

但是,如果要使用AJAX在同一页面上加载部分视图,只需将return View()替换为return PartialView()

public ActionResult GlobalSearch(string searchcategory, string Location)
{
   //Connect to db and fetch data in form of List
   return PartialView(list);
}

然后使用html()函数将部分视图内容显示到目标HTML元素中:

$('#btn_Search').click(function (e) {
    var category = $("#ddl_Category option:selected").text();
    var location = $('#txtSource').val();
    $.ajax({
        url: "/Classified/GlobalSearch",
        type: 'GET',
        data: { searchcategory: category, Location: location },

        success: function (data) {
            alert("Hi");
            $('#targetElement').html(data); // show partial view content to target element
        },
        // other stuff
    });
});