mercoledì 11 luglio 2018

asp.net mvc ajax 404 - File or directory not found call method

Nel caso che si sta facendo una chiamata ad un metodo del controller, da una "View" in Asp.Net MVC utilizzando ajax, può capitare che venga visualizzato un errore di tipo "404 - File or directory not found call method".

Per evitare questo tipo di messaggio, utilizzare la parola chiave "Url.Action".

Qui di seguito, il codice che replica l'errore:

 $.ajax({
                   url: "/Home/MioMetodo",
                  type: "GET",
                   dataType: "json",
                   data: { "parametro1": "valore1", "parametro2": $(this.element).val() },
                    success: function (data) {
                            response(data);
                   },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                      alert("XMLHttpRequest=" + XMLHttpRequest.responseText + "\ntextStatus=" + textStatus + "\nerrorThrown=" + errorThrown);
                 }
                 
               });


Mentre qui di seguito, il frammento di codice relativo alla soluzione:

 $.get("@Url.Action("MioMetodo", "Home")?parametro1=" + "valore1"+ "&parametro2=" + $(this.element).val(), function (data) {
                    response(data);
                });



Mentre qui di seguito il frammento di codice relativo al controller.


 [HttpGet]
        public ActionResult MioMetodo(string parametro1, string parametro2)
        {
              //codice
       
                 return Json("valore", JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
                return null;
            }

        }

Nessun commento: