Pregunta

¿Es posible deshabilitar un determinado parámetro de acción para que no conserve su valor en las solicitudes?

[HttpPost]
public ActionResult MyAction(string value1, string value2)
{
        if(value1=="hi")
             ModelState.AddModelError("value1", "Can't have hi");
        //do stuff
        if(ModelState.IsValid)
           return RedirectToAction("Finish");
        else
           return View()
}


[HttpGet]
public ActionResult MyAction()
{
        return View()
}

La vista consiste en una forma simple con dos cuadros de entrada (valor1 y valor2). Una vez enviado y la validación falla, se devuelve la vista. Quiero tener siempre el valor del cuadro de texto en la vista para que esté vacío.

El valor para el cuadro de texto " value1 " se conserva si el modelo se invalida.

Traté de declarar el cuadro de texto como <% = Html.TextBox (" value1 " ;, null)% > pero el valor aún se conserva. También intenté usar [Bind (Exclude = & Quot; value1 & Quot;)] pero eso no funciona en una sola variable.

Actualización 2:

Estoy haciendo esto para un cuadro de texto que se utiliza para la entrada Captcha (solución personalizada). Quiero que el cuadro de texto se borre cada vez que se carga la página, pero quiero que la validación permanezca.

¿Fue útil?

Solución

Intenta llamar

ModelState["value1"].Value 
  = new ValueProviderResult(null, string.Empty, CultureInfo.InvariantCulture);

antes de devolver la vista desde la acción del controlador.

Lo que esto hace es mantener todos los errores asociados con la clave " value1 " ;, pero reemplaza el valor con un valor vacío.

Otros consejos

¿Qué haces para que se retenga? No hay nada como ViewState en MVC que persista un valor en múltiples solicitudes a menos que esté escribiendo código o utilizando campos de formulario para hacerlo.

¿Cómo se ve la vista? ¿Se llama a este método de acción a través de GET o POST? ¿Qué es el & Quot; haz cosas & Quot; contenido en su método?

Editar: sigues mostrando // haz cosas en tu código de ejemplo. ¿Eso contiene alguna referencia a ViewData? Su pregunta es sobre el enlace, pero no veo que ocurra ningún enlace. Tal vez esto está más allá de mi comprensión.

Edición 2: ¡Me alegra que Phil haya visto este! La pregunta original no mencionaba el ModelState.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top