我对控制器进行了一次AJAX调用,并希望从控制器接收一个值,以便在回调函数中使用,这样我就可以触发一个事件(在本例中是一个Kendo Popup Window)。我很难在网上找到一个有效的例子。任何帮助解决这个问题都将不胜感激。
我的AJAX电话:
$("#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):
if (nextformRule.UserOption != (int)UserOptions.AllUser)
{
//return RedirectToAction("SelectNextFormUsers", new { forminstanceID = fmInst.FormInstanceID, userOption = nextformRule.UserOption }); //Send Email page
//string result = "multiple";
//return Json(result, JsonRequestBehavior.AllowGet);
//return Content(result);
return Json(new
{
Multiple = "multiple"
});
}
答案 0 :(得分:0)
我猜#SubmitButton
是form
标记内的常规提交按钮,当点击它时,会执行JavaScript点击处理程序(以及相应的ajax请求),但该按钮的默认行为不是预防。发生常规表单提交,您将收到浏览器显示的JSON结果。
您可以尝试使用event.preventDefault
(推荐)阻止此默认行为:
$("#SubmitButton").on("click", function (event) {
event.preventDefault();
[ ... ]
});
或者在事件处理程序结束时返回false
:
$("#SubmitButton").on("click", function () {
[ ... ]
return false;
});