Asp.net MVC ModelState.Clear
¿Puede alguien darme una definición sucinta del rol de ModelState en Asp.net MVC (o un enlace a uno)? En particular, necesito saber en qué situaciones es necesario o deseable llamarModelState.Clear()
.
Bit abierto terminado eh... lo siento, creo que podría ayudar si te digo lo que estoy haciendo en la práctica:
Tengo una Acción de Editar en un Controlador llamado "Página". Cuando veo por primera vez el formulario para cambiar los detalles de la página, todo se carga bien (se vincula a un objeto "MyCmsPage"). Luego hago clic en un botón que genera un valor para uno de los campos del objeto MyCmsPage (MyCmsPage.SeoTitle
). Genera bien y actualiza el objeto y luego devuelvo el resultado de la acción con el objeto de página recién modificado y espero el cuadro de texto relevante (representado con<%= Html.TextBox("seoTitle", page.SeoTitle)%>
) para ser actualizado ... pero, por desgracia, muestra el valor del modelo anterior que se cargó.
He trabajado alrededor usandoModelState.Clear()
pero necesito saber por qué / cómo ha funcionado, así que no solo lo hago a ciegas.
PageController:
[AcceptVerbs("POST")]
public ActionResult Edit(MyCmsPage page, string submitButton)
{
// add the seoTitle to the current page object
page.GenerateSeoTitle();
// why must I do this?
ModelState.Clear();
// return the modified page object
return View(page);
}
Aspx:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyCmsPage>" %>
....
<div class="c">
<label for="seoTitle">
Seo Title</label>
<%= Html.TextBox("seoTitle", page.SeoTitle)%>
<input type="submit" value="Generate Seo Title" name="submitButton" />
</div>