Si está utilizando los métodos de tipo Html.TextBoxFor()
, que bien puede terminar con los controles de formulario que tienen puntos en sus nombres, así:MVC Parámetro del controlador para un elemento de formulario con un punto en él?
<input type="text" name="Contact.FirstName" id="Contact_FirstName" />
Si quieren MVC para mapear los campos denominados en los parámetros en su controlador (a diferencia de un parámetro de objeto o lo que sea), debe obtener los nombres de los parámetros correctos. ¿Qué hacer con los puntos?
Ni este:
[HttpPost]
public ActionResult FooAction(string firstName)
no esto:
[HttpPost]
public ActionResult FooAction(string contact_FirstName)
parecen funcionar.
Editar: Tener un parámetro de objeto adecuado funcionaría (por ejemplo, see clicktricity's answer), pero estoy buscando una forma de hacerlo con los parámetros de valor con nombre.
Oye, eso es interesante. ¿Por qué lo llamas un mal uso? ¿No es esto para lo que BindAttribute es? – codeulike
Parece que la propiedad BindAttribute.Prefix solo pretendía dar un alias a una instancia de tipo complejo. –
También funciona en MVC 2. Llamaría a esto 'creativo' en lugar de un truco. – codeulike