2009-10-16 7 views
7

De forma predeterminada, un cuadro de texto representado usando <% = Html.TextBox ("somefield")%> usa el valor de los datos de la publicación, p. si tiene errores de validación en su página, el valor se recupera de los datos publicados y se utiliza para el atributo de valor.¿Cómo borrar los datos de publicación para un cuadro de texto en una aplicación ASP.NET MVC?

Ahora, en algunos casos quiero poder borrar ese valor, en otras palabras, quiero que el cuadro de texto esté en blanco, no quiero que MVC obtenga el valor de los datos publicados y lo use para el atributo de valor, ¿cómo puedo hacer? ¿Cómo puedo borrar los datos de la publicación?

Gracias

Respuesta

12
ModelState.Remove("key"); 
+4

Esto también parece funcionar si desea borrar todos los valores: ModelState.Clear(); – jesperlind

+0

¿Hay alguna forma de hacerlo sin borrar los errores de la querystring y validación? – stuartdotnet

+1

@StuartDobson Para referencia futura, si elimina la clave y establece su error de validación, eso no debería ser un problema. Al menos, funcionó para mí. – ErocM

3

quitar el valor del estado del modelo, como este:

ViewData.ModelState.Remove("somefield"); 
2

descubrí que tenía a la vez eliminar el ModelState y cambiar el modelo, como si MVC intenta ModelState primera , entonces el modelo:

ModelState.Remove("key"); 
model.key = ""; 

Y si no quiere perder su estado de error para el modelo, puede simplemente cambiar el valor de la siguiente manera:

ModelState.SetModelValue("Captcha", new ValueProviderResult(null, string.Empty, System.Globalization.CultureInfo.InvariantCulture)); 
model.key = ""; 
Cuestiones relacionadas