首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery to .post()实现带有Razor的MVC控制器方法

使用jQuery to .post()实现带有Razor的MVC控制器方法
EN

Stack Overflow用户
提问于 2013-05-07 00:23:51
回答 1查看 323关注 0票数 0

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

奇怪的是,使用正确的sNumber参数,这段代码仍然可以正确地发送到控制器。但是,一旦控制器经历了从数据库中获取代理并尝试呈现视图的过程,就不会发生任何事情。用户停留在相同的页面上。

这是jQuery

代码语言:javascript
复制
                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 });

控制器中有一大堆代码,所以我不会让你发布它。但是,这是最后一行

代码语言:javascript
复制
return View(bigAgent);

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 00:28:30

这并不奇怪,它是正确发布的。毕竟您使用的是POST请求,所以sNumber参数不像GET请求(例如/Agent/Details/3)那样属于URL。

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

代码语言:javascript
复制
$.post('url', { data }, function(data) {
    // callback
});

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16402947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档