Asp.net mvc 使用jQuery to.post()到ASP MVC控制器方法w/Razor
如何使用jQuery使用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:
@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,而应该执行常规表单提交,以便在控制器中处理重定向