мой метод действий, возвращающий {«успех = истина, сообщение = «работа выполнена»} ASP.net MVC 5

#asp.net #web #model-view-controller

#asp.net #web #модель-представление-контроллер

Вопрос:

Вот мой метод создания действия. Я хочу получать оповещение от него, когда успех будет истинным.

 public JsonResult Create(Student student ,HttpPostedFileBase img)
    {

        if (ModelState.IsValid)
        {
            if (img !=null)
            {
                var name = Path.GetFileNameWithoutExtension(img.FileName);
                var ext = Path.GetExtension(img.FileName);
                var filename = name   DateTime.Now.ToString("ddmmyyyff")   ext;
                img.SaveAs(Server.MapPath("~/img/" filename));
                student.ImageName = filename;
                student.Path = "~/img/"   filename;
            }
            db.Students.Add(student);
            db.SaveChanges();
            return Json(new  { success = true, responseText = "The attached file is not supported." }, JsonRequestBehavior.AllowGet);


        }

        ViewBag.ClassID = new SelectList(db.Classes, "Id", "Name", student.ClassID);
        return new JsonResult { Data = new { success = false, message = "data not saved" } };

    }
  

Вот моя ajax-функция :

     function onsub(form) {
    $.validations.unobtrusive.parse(form);
    if (form.valid()) {
        var ajaxConfig = {
            type: "POST",
            url: form.action,
            data: new FormData(form),

            success: function (response) {
                if (response.success ) {
                    alert(response.responseText);
                } else {
                    // DoSomethingElse()
                    alert(response.responseText);
                }
            }
        }
        if ($(form).attr("enctype") == "multipart/form-data") {
            ajaxConfig["contentType"] = false;
            ajaxConfig["processData"] = false;
        }
        $.ajax(ajaxConfig);
    }
    return false;
}
  

Как я могу получить оповещение об этом
без перезагрузки формы. Я также хочу отправить изображения и другие файлы для создания метода действий.

Это результат, который я получаю после отправки формы:

результат, который я получаю после отправки формы

Ответ №1:

В вашем случае вы вызываете действие Create, которое возвращает результат JSON, и тот же ответ Json отображается в браузере.

Это должна быть страница просмотра, с которой вы вызовете этот метод с помощью вызова Ajax, тогда вы сможете увидеть свое предупреждающее сообщение.