【发布时间】:2018-05-10 18:40:22
【问题描述】:
无法通过我的 AJAX 和 MVC 6 控制器交朋友。
这就是我为 SetFormValues POST-action 定义 AJAX 调用的方式:
Index.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;
}
最后,他的SuccessFunction(result)是这样定义的:
再次索引.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 结果或在上面的声明中填写一些属性,我不知道。 我正在使用最新的 jquery 库,验证和不引人注目。 我也尝试过 JSON.parse(result),正如最新的 jQuery 规范中提到的那样,但效果不佳。
请帮帮我:)
【问题讨论】:
-
使用 JS 调试器查看你的对象是什么。
-
或查看网络标签中的响应。
标签: ajax asp.net-mvc asp.net-core asp.net-core-2.0