Asp.net mvc 使用jQuery to.post()到ASP MVC控制器方法w/Razor

Asp.net mvc 使用jQuery to.post()到ASP MVC控制器方法w/Razor,asp.net-mvc,asp.net-mvc-3,jquery,Asp.net Mvc,Asp.net Mvc 3,Jquery,如何使用jQuery使用Razor语法发布到不同的控制器?下面是我尝试使用的代码。除了包含@Url.Action的警报外,每个警报都会弹出我期望的确切信息。这给了我一个仅包含控制器和方法的URL(即/Agent/Details)。sNumber完全丢失 奇怪的是,此代码仍然正确地过帐到控制器,带有正确的sNumber参数。但是,一旦控制器完成从数据库抓取代理并尝试呈现视图的过程,就不会发生任何事情。用户保持在同一页面上 这是jQuery alert("input:

如何使用jQuery使用Razor语法发布到不同的控制器?下面是我尝试使用的代码。除了包含
@Url.Action
的警报外,每个警报都会弹出我期望的确切信息。这给了我一个仅包含控制器和方法的URL(即
/Agent/Details
)。
sNumber
完全丢失

奇怪的是,此代码仍然正确地过帐到控制器,带有正确的
sNumber
参数。但是,一旦控制器完成从数据库抓取代理并尝试呈现视图的过程,就不会发生任何事情。用户保持在同一页面上

这是jQuery

                alert("input: " + item + ", map: " + map[item].sNumber);
                var sNumber = map[item].sNumber;
                alert("variable: " + sNumber);

                alert('@Url.Action("Details","Agent")', { id: sNumber });
                $.post('@Url.Action("Details","Agent")', { id: sNumber });
控制器中有大量的代码,所以我不发布它,以节省您的时间。然而,这是最后一行

return View(bigAgent);

控制器使用
sNumber
输入参数从数据库中获取记录,并将该代理的信息传递到
详细信息
视图。我已经使用jQuery搜索和常规搜索(正确重定向)检查了
bigAgent
对象的内容,它们是一样的。无论出于何种原因,在使用jQuery搜索时,您都不会被引导到
详细信息
页面

它的发布正确并不奇怪。毕竟您使用的是POST请求,因此
sNumber
参数不属于URL,因为它与
GET
请求(例如
/Agent/Details/3
)不属于URL

您没有被重定向,因为当您使用jQueryAjax方法时,它们是异步发生的。您需要在
$.post()函数的成功回调中自己处理重定向

$.post('url', { data }, function(data) {
    // callback
});

看起来您根本不应该使用AJAX,而应该执行常规表单提交,这样您就可以在控制器中处理重定向。

正确发布并不奇怪。毕竟您使用的是POST请求,因此
sNumber
参数不属于URL,因为它与
GET
请求(例如
/Agent/Details/3
)不属于URL

您没有被重定向,因为当您使用jQueryAjax方法时,它们是异步发生的。您需要在
$.post()函数的成功回调中自己处理重定向

$.post('url', { data }, function(data) {
    // callback
});
看起来您根本不应该使用AJAX,而应该执行常规表单提交,以便在控制器中处理重定向