如何正确地将带有JSON数据的jquery post请求发送到MVC 3,以便它将控制权交还给我的控制器

How do I properly send a jquery post request with JSON data to MVC 3 such that it yields control back to my controller?

本文关键字:MVC 我的 控制器 控制权 JSON 正确地 数据 请求 post jquery      更新时间:2023-09-26

我知道这可能是一个常见且容易回答的问题,但我是个傻瓜。这是我的情况:

我有一个复杂的对象列表,我可以发送很好使用ajax调用如下:

$j.ajax({
    url: actionURL,
    type: 'POST',
    dataType: 'json',
    data: dataToSend,
    contentType: 'application/json; charset=utf-8',
    success: function (response)
    {
        alert(response);
    }
});

"actionURL"上的MVC3控制器动作获取对象并自动将其反序列化为我想要的对象。然而,当我从那个控制器函数返回ActionResult时,什么都没有发生。我想在这个控制器函数中重新获得控制权,并返回cshtml中定义的"PostResults"视图,就像我在其他控制器函数中所做的那样,但似乎我的返回是返回到JS。我猜答案与路由有关,但正如我所说的,我是个笨蛋。

任何想法为什么JS ajax调用似乎正在控制流,以及如何阻止这种情况发生?我希望这个JS模块就像我拥有的所有其他视图一样!

你想做一个后重定向。点击这里了解更多信息。

ajax的真正目的是不离开用户正在查看的当前页面,从而创建一个响应更快的UI。

这里有一个类似的问题和一个很好的答案

但是,您还应该考虑是否真的需要完全重新加载,或者在结果中返回部分页面,然后"success"函数相应地更新页面的一部分。