我的AJAX和MVC 6控制器无法交朋友。
这就是我定义AJAX调用的方式
SetFormValues
后期操作:
指数cshtml
$.ajax({
type: "Post",
url: "Home/SetFormValues",
data: { Name: name, Phone: phone },
dataType: "json",
success: function (result) {
SuccessFunction(result)
},
error: function () {
alert("ALARM!");
},
async: false
})
我看到控制器工作并执行
SetFormValues
定义如下的操作:
HomeController。cs公司
[HttpPost]
public JsonResult SetFormValues(string Name, string Phone)
{
string NameErrorStr = string.IsNullOrWhiteSpace(Name) ? "ÐбÑзаÑелÑное поле" : string.Empty;
string PhoneErrorStr = string.IsNullOrWhiteSpace(Phone) ? "ÐбÑзаÑелÑное поле" : string.Empty;
var result = new { NameError = NameErrorStr, PhoneError = PhoneErrorStr };
var jresult = Json(result);
return jresult;
}
调试器显示操作已执行,并且生成的JSON对象已正确填充:
最后,他的是如何
SuccessFunction(结果)
定义如下:
指数再次使用cshtml
function SuccessFunction(result) {
alert("Success function shit executed. result=" +
result + "NameError=" +
result.NameError + ". PhoneError=" +
result.PhoneError);
$("#nameerror").append(result.NameError);
$("#phoneerror").append(result.PhoneError);
}
函数工作,发出警报,但无论我做什么,结果都保持“未定义”:
result = [object Object]
result.val = undefined
也许我必须正确地反序列化JSON结果,或者在上面的声明中填充一些属性,我不知道。
我正在使用lattest库进行jquery、validate和Untrusive。
我也试过了
JSON。分析(结果)
,正如lattest jQuery规范中提到的那样,但它并没有起到很好的作用。
请帮帮我:)