我在控制器中对MVC ActionResult进行了AJAX调用,试图返回一个bool。
我的ajax电话:
function CheckForExistingTaxId() {
$.ajax({
url: "/clients/hasDuplicateTaxId",
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
data: JSON.stringify({ taxId: taxId }),
});
}
我的方法:(“clients”是默认路由前缀)
[HttpGet, Route("hasDuplicateTaxId")]
public ActionResult hasDuplicateTaxId(string taxId)
{
//if stuff
return Json(true, JsonRequestBehavior.AllowGet);
else
return Json(false, JsonRequestBehavior.AllowGet);
}
我想根据ajax调用的结果打开一个模态对话框:
if (CheckForExistingTaxId())
DialogOpen();
第一个问题是我收到了404 Not Found for clients / hasDuplicateTaxId。 我的路线或我打电话的方式有问题吗? 其次,我能以这种方式返回一个布尔值,在打开对话框之前使用ajax调用来评估函数CheckForExistingTaxId()吗?
答案 0 :(得分:4)
基本上如果想要将Json与HttpGet
一起使用:
[HttpGet, Route("hasDuplicateTaxId")]
public ActionResult hasDuplicateTaxId(string taxId)
{
// if 1 < 2
return 1 < 2 ? Json(new { success = true }, JsonRequestBehavior.AllowGet)
: Json(new { success = false, ex = "something was invalid" }, JsonRequestBehavior.AllowGet);
}
AJAX:
function CheckForExistingTaxId() {
$.ajax({
url: "/clients/hasDuplicateTaxId",
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
data: JSON.stringify({ taxId: taxId }),
success: function (data) {
if (data.success) {
// server returns true
} else {
// server returns false
alert(data.ex); // alert error message
}
}
});
}