Javascript 如何将MVC ActionResult中的值传递给AJAX成功回调函数?
我对控制器进行了一个AJAX调用,希望从控制器接收一个值,用于回调函数,以便触发一个事件(在本例中是剑道弹出窗口)。我很难在网上找到一个有效的例子。如果您能帮助解决这个问题,我们将不胜感激 我的AJAX调用:Javascript 如何将MVC ActionResult中的值传递给AJAX成功回调函数?,javascript,jquery,ajax,asp.net-mvc-4,callback,Javascript,Jquery,Ajax,Asp.net Mvc 4,Callback,我对控制器进行了一个AJAX调用,希望从控制器接收一个值,用于回调函数,以便触发一个事件(在本例中是剑道弹出窗口)。我很难在网上找到一个有效的例子。如果您能帮助解决这个问题,我们将不胜感激 我的AJAX调用: $("#SubmitButton").on("click", function () { $.ajax({ url: "/Workflow/SaveWorkflow", type: 'POST', data: ({ buttonTy
$("#SubmitButton").on("click", function () {
$.ajax({
url: "/Workflow/SaveWorkflow",
type: 'POST',
data: ({ buttonType: "Submit Form" }),
success: function(data)
{
if (data.Multiple != null) {
var window = $("#SelectUsers").data("kendoWindow");
window.refresh({
url: ("Workflow", "SelectNextFormUsers"),
datatype: "json",
data: ({ formInstanceID: '@Model.FormInstanceID', userOption: 2 })
});
window.center();
window.open();
}
else
{
//do nothing
}
}
})
});
当我试图返回控制器中的值时(控制器返回ActionResult):
我猜#SubmitButton
是表单
标记中的一个常规提交按钮,单击该按钮时,会执行JavaScript单击处理程序(以及相应的ajax请求),但不会阻止该按钮的默认行为。发生常规表单提交时,您将收到浏览器显示的JSON结果
您可以尝试使用(推荐)来防止这种默认行为:
或者在事件处理程序的末尾返回false
:
$("#SubmitButton").on("click", function () {
[ ... ]
return false;
});
你有什么错误?在控制台或其他http错误中?无错误,但该值不会发送到成功回调。它只显示一个白色屏幕,左上角有我传递的字符串。我在成功回调函数中有一个警报,但它从未启动。能否显示
SaveWorkflow
方法签名?您有HttpPost
吗?谢谢您的建议,但这不是问题所在。SaveWorkflow()方法将提交表单,或者在用户提交表单之前,通过弹出窗口中断用户。如果我阻止默认行为,那么提交表单的第一个场景将无法发生。@MattParra。这就是问题所在。如果你看到一个新页面上有{Multiple=“Multiple”}
,那么除了ajax调用之外,你还要执行一个正常的提交。我不能阻止默认设置,因为它会导致函数永远不提交,我需要它在90%的时间内提交。我想我已经找到了一个解决办法,一旦我解决了它并开始工作,我就会更新。@MattParra我仍然认为这就是问题所在。您是否可以进一步解释并添加chtml
代码和SaveWorkflow
方法?
$("#SubmitButton").on("click", function (event) {
event.preventDefault();
[ ... ]
});
$("#SubmitButton").on("click", function () {
[ ... ]
return false;
});