jQuery在从jQuery调用的MVC控制器返回操作后重新加载当前页面
我在Global.asax中有一些代码,我需要在jQuery调用执行某些逻辑的控制器操作之后执行这些代码。在控制器操作返回后,我需要重新加载当前页面(无论该页面是什么) jQuery调用控制器操作jQuery在从jQuery调用的MVC控制器返回操作后重新加载当前页面,jquery,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net Mvc,Asp.net Mvc 4,我在Global.asax中有一些代码,我需要在jQuery调用执行某些逻辑的控制器操作之后执行这些代码。在控制器操作返回后,我需要重新加载当前页面(无论该页面是什么) jQuery调用控制器操作 <script type="text/javascript"> $(function () { $('#SelectedLanguage').on('change', function () { var culture = $(this).v
<script type="text/javascript">
$(function () {
$('#SelectedLanguage').on('change', function () {
var culture = $(this).val();
$('#test').load("/Account/TestPartial/" + culture);
//location.reload(true);
return false;
});
});
</script>
我尝试了location.reload(true)代码>但它会立即重新加载。我需要等待控制器操作返回。试图在控制器操作中实现await
,但我想我不确定如何编码,因为TestPartial中调用的例程都没有返回任何与await
兼容的内容
jQuery.get()似乎是一个选项?这是否意味着我必须将jQuery调用参数转换为JSON,并为JSON编写控制器操作代码,或者是否有一种方法可以使用.get()进行调用?如果要在返回一点AJAX后重新加载页面,那么使用AJAX没有任何意义。只要做一个正常的GET或POST
也就是说,这里的问题是AJAX是异步的。换句话说,在执行行$('#test').load(…)
之后,在整个AJAX位有机会发送请求和接收响应之前,立即执行下一行。为了仅在响应返回后执行代码,必须传递回调:
$('#test').load('/Account/TestPartial/' + culture, function () {
// do something
});
美好的那么简单。。。克里斯,就是这样。谢谢你的帮助。克里斯,需要在控制器操作中写入的cookie似乎不再被写入。页面重新加载是否会阻止设置Response.Cookies.Add(cookie)
?
$('#test').load('/Account/TestPartial/' + culture, function () {
// do something
});