¿Por qué ServicesEstack no pudo hacer un montón de encuadernación en la solicitud de Post de JSON?

StackOverflow https://stackoverflow.com//questions/11678610

  •  12-12-2019
  •  | 
  •  

Pregunta

$.ajax({
        type: 'POST',
        url: "/api/student",  
        data:'{"x":3,"y":2}',
        dataType: "json",
        complete: function (r, s) {
            debugger;
        },

        success: function(response){
            debugger;
        },

        contentType: "application/json" // !!!!!!!!!!!! The reason of problem. I could see Json on firebug. It was false-positive for my code !

    });

He trazado Stream a través de Firebug.Firebug reconoció y mostró un objeto JSON.

Este código accedió al método de ONPOST de RESTSSERVICEBASE. Pero la enlace del modelo no funcionó. ¿Los nombres de las propiedades tienen que ser exactamente iguales en JSON Object y C # Class?

o estoy perdiendo algo?(Sí, ¿falta algo!)

PS: He cambiado URL a "/ API / Student / JSON / Asynconeway", con suerte, pero luego obtuve 404 Error

¿Fue útil?

Solución 3

Tengo que agregar

DataType: "Aplicación / JSON" propiedad a la solicitud AJAX!

Otros consejos

MADRICESTACK hace model Bind A JSON POST (así como cualquiera de los Tipos de contenido compatibles incluyendo X-WWW-Form-URLENCODED).

Hay muchos ejemplos en servicestack.examples que hace esto.

Este código accedió al método de ONPOST de RESTSSERVICEBASE .PUT MODELO MODELO no funcionó.

No ha mostrado cómo está intentando atar. Pero este JSON

{"x":3,"y":2}

mapearía a una DTO a juego, por ejemplo:

public class Student { 
    public int X { get; set; }
    public int Y { get; set; }
}

¿Deben ser exactamente los nombres de las propiedades en JSON OBJETO y C # CLASE?

Tienen que coincidir con los nombres de plato, pero no distinguen entre mayúsculas y minúsculas , vea arriba.

PS: He cambiado URL a "/ API / Student / JSON / Asynconeway", con suerte, pero Luego obtuve 404 error

esto está mal. Si está tratando de usar un ruta predefinida automática , la URL correcta es :

/api/json/asynconeway/student

Suponiendo que su Solicitud DTO se llama Student.

Aquí hay algún código mío:

            $.ajax({
                type: "POST",
                url: "/artist/delete",
                data: { id: itemId },
                success: function () {
                    $("div#" + itemId).fadeOut(function () { $(this).remove(); });
                }
            });

Editar: Lo siento, me confundí lo que quería allí, así que le hará una pregunta, ¿por qué está enviando JSON al servidor donde podría hacer una función como esta:

[HttpPost]
        public ActionResult Delete(int id)
        {
            var artist = _db.Artists.Where(x => x.ID == id).SingleOrDefault();
            if (artist == null)
            {
                return Content("false");
            }
            else
            {
                _db.Artists.DeleteOnSubmit(artist);
                _db.SubmitChanges();
                return RedirectToAction("Post");
            }
        }

edit2: y usted tiene error de sintaxis aquí data:'{"x":3,"y":2)}',.
edit3: Otro error de sintaxis

        }
        }
    });

al final del código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top