0
我有它发送的形式,以行动阿贾克斯像下面的操作:不能返回JSON结果时,形式是无效
@using (Ajax.BeginForm(MVC.Admin.DeviceGroup.Create(), new AjaxOptions { HttpMethod = "POST", OnSuccess = "saveAjaxForm", OnFailure = "SaveFailure" }))
{...}
操作是:
public virtual JsonResult Create(AddDeviceGroupViewModel deviceGroupViewModel)
{
if (ModelState.IsNotValid())
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { success = false, message = ModelState.FirstErrorMessage(), notificationType = NotificationType.Error }, JsonRequestBehavior.AllowGet);
}}
和我js
功能:
function SaveFailure(data) {
console.log('saveFailure');
$("button[type=submit]").prop('disabled', false);
var result = $.parseJSON(data.responseText);
showMessage(result.message, result.notificationType);
}
我有此错误消息:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
IsNotValid
是ExtensionMethod:
public static bool IsNotValid(this ModelStateDictionary modelState)
{
return !modelState.IsValid;
}
和FirstErrorMessage
是:
public static string FirstErrorMessage(this ModelStateDictionary modelState)
{
return modelState.Select(row => row.Value.Errors).Where(row => row.Count > 0).FirstOrDefault().First().ErrorMessage;
}
@StephenMuecke它没有任何回报。作为回应,我只是有BadRequest。 –
你的方法正在返回一个错误的请求,所以当然你会得到。在'var result = $ .parseJSON(data.responseText)之后'添加'console.log(result.message);'和'console.log(result.notificationType);'' - 输出是什么? (当我硬编码一些值时,对我很好) –
@StephenMuecke我有'JSON.parse:JSON数据的第1行第1列的意外字符'。我认为没有'parseJSON'方法/ –