2010-04-24 20 views
17

Estoy utilizando entidades de Entity Framework (v4). Tengo una entidad llamada Car con una propiedad Year of type integer. La propiedad Year no permite NULL. Tengo el siguiente en mi opinión Crear:Mostrar el cuadro de texto vacío utilizando Html.TextBoxFor en una propiedad no nula en una entidad de EF

<%= Html.TextBoxFor(model => model.Year) %> 

estoy obligado a devolver un objeto nuevo coche (debido a otros requisitos) en mi HttpGet Crear acción en el CarController.

Actualmente, se muestra un cero en el cuadro de texto Año porque la propiedad Año no permite NULO. Me gustaría mostrar un cuadro de texto vacío en la vista Crear. ¿Cómo hago esto?

Respuesta

1

Tal vez puedas probar:

Html.TextBox("Year", "") 
+0

Podría hacerlo de esa manera, pero prefiero usar Html.TextBoxFor. – thd

+0

@ Html.TextBoxFor (modelo => modelo.Año, nuevo {Valor = ""}) permite el enlace del modelo, esta respuesta no. – MeanGreen

38

Uso atributos HTML sobrecarga. En la maquinilla de afeitar sería:

@Html.TextBoxFor(model => model.Year, new { Value = "" }) 
+12

También es importante tener en cuenta que "Valor" debe tener una "V" mayúscula para que esto funcione, pero esta es la mejor solución. – blockloop

+3

Como también comenté una respuesta similar en una de las preguntas vinculadas ... Debe tenerse en cuenta que esto no funciona bien cuando se utiliza con la validación MVC típica del lado del servidor donde se vuelve a mostrar la vista con los errores de validación (Ej .; 'if (! ModelState.IsValid) return View (viewmodel)'). Cada vez que el cuadro de texto se represente al cargar la página, se mostrará una cadena vacía. Esto es ideal para la primera visualización habitual de la página, pero es malo cuando el usuario regresa debido a una falla de validación. Cualquier dato que ingresen en los campos se perderá y se reemplazará con la cadena vacía. – EF0

-1

Prueba esto es que están tratando de anexar a su campo o desea modificar un campo existente con un TextBoxFor vacía.

Html.TextBoxFor(model => model.Year, Model.Year="") 
Cuestiones relacionadas