2009-08-23 10 views
36

Diga si tuviera esta tabla en mi db: Producto¿Cómo usar el Prefijo de enlace?

Tenía

ProductId 
ProductName 
ProductType 

Ahora por alguna razón que no puedo nombrar mis cuadros de texto NombreProducto y ProductType por lo que ahora mi método Ver vería así

public ViewResult Test([Bind(Exclude ="ProductId")] Product) 

Así que ahora que jugué nada se podría igualar en este producto ya que tienen diferentes nombres.

Así que supongo que aquí es donde entraría Prefix pero no sé cómo usarlo. Ni cómo lo uso y Excluir al mismo tiempo.

¿Alguien me puede dar un ejemplo?

Respuesta

115

El prefijo se utiliza la siguiente manera si en su vista que se tiene ...

<select name="p.ProductType">....</select> 
<input type="text" name="p.ProductName" /> 

Puede enlazar el formulario de entrada a una instancia de su modelo haciendo algo como

public ActionResult([Bind(Prefix="p")]Product product) 

Usted debe tener en cuenta que MVC haría esto automáticamente si usted nombrara su argumento de método p.

El prefijo puede ser muy útil si está intentando vincular varias entidades al mismo tiempo (por ejemplo, dos campos de nombre).

Para utilizar el excluyen la unión a ciertas propiedades (es decir, evitar la gente que pasa en ProductIds en una forma forjada) acaba de establecer los nombres de propiedades para excluir

public ActionResult([Bind(Prefix="p", Exclude="ProductId")]Product product) 

Esto asegurará que el ProductID en su entidad nunca se estableció .

Si desea vincular dos nombres de campo completamente diferentes, p. Escriba en ProductType, puede ver el enlace de modelo personalizado o simplemente obtener el campo de FormCollection usted mismo.

+1

Gran respuesta. +1 - esto me ayudó. – Chev

Cuestiones relacionadas