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);
}