tutorial net mvc entre ejemplos dropdownlist diferencias asp c# .net asp.net-mvc query-string model-binding

net - web forms c#



¿Funciona el enlace de modelos a través de cadenas de consulta en asp.net mvc? (1)

¿Funciona también el enlace de modelo a través de la cadena de consulta?

Si tengo una solicitud de obtención como:

GET /Country/CheckName?Country.Name=abc&Country.Id=0 HTTP/1.1

¿El siguiente método en CountryController tendrá su argumento oCountry que contiene las propiedades Id y Name con los valores de la cadena de consulta?

public ViewResult CheckCountryName(Country oCountry) { //some code return View(oCountry); }

Por alguna razón, obtengo Id como 0 y Name como nulo en un objeto Country. Lo que falta ?


Sí, el enlace del modelo admite el enlace desde la cadena de consulta. Sin embargo, las mismas reglas de enlace de modelo se aplican aquí también: los nombres / expresiones de propiedad deben coincidir en su solicitud y en su modelo.

Por lo tanto, si tiene una propiedad de Name , entonces necesita tener una clave de Name en la cadena de consulta. Si escribe Country.Name el Country.Name del modelo primero busca una propiedad llamada Country y luego una propiedad Name en ese objeto de país.

Por lo tanto, no necesita el prefijo de Country para los nombres de sus propiedades, por lo que su solicitud debería tener este aspecto:

/Country/CheckName?Name=abc&Id=1 HTTP/1.1

O si no puede cambiar la solicitud, puede especificar el prefijo para su parámetro de acción con el BindAttribute :

public ViewResult CheckCountryName([Bind(Prefix="Country")]Country oCountry) { //some code return View(oCountry); }