que estoy usando ligante modelo personalizado de ASP.NET MVC 2 que tiene este aspecto:Valores de ajuste ModelState en ligante modelo personalizado
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
if (controllerContext == null)
{
throw new ArgumentNullException("controllerContext");
}
if (bindingContext == null)
{
throw new ArgumentNullException("bindingContext");
}
BaseContentObject obj = (BaseContentObject)base.BindModel(controllerContext, bindingContext);
if(string.IsNullOrWhiteSpace(obj.Slug))
{
// creating new object
obj.Created = obj.Modified = DateTime.Now;
obj.ModifiedBy = obj.CreatedBy = controllerContext.HttpContext.User.Identity.Name;
// slug is not provided thru UI, derivate it from Title; property setter removes chars that are not allowed
obj.Slug = obj.Title;
ModelStateDictionary modelStateDictionary = bindingContext.ModelState;
modelStateDictionary.SetModelValue("Slug", new ValueProviderResult(obj.Slug, obj.Slug, null));
...
Cuando vuelva de esta carpeta en la acción del controlador, mi objeto de negocio que es proporcionado como un parámetro para que la acción se altere correctamente (las líneas obj.Created = .... work).
Sin embargo, ModelState no se actualiza. Lo sé porque tengo Requerido en la propiedad Slug de mi objeto comercial y aunque modifiqué ModelStateDictionary en mi carpeta de modelo personalizado, proporcionándole un Slug (como puede ver arriba), el ModelState.IsValid sigue siendo falso.
Si pongo ModelState ["Slug"] en mi ventana de vigilancia en la sesión de depuración, dice que tiene errores (1), por lo que aparentemente está vacío y, como tal, falla.
¿Cómo puedo alterar correctamente el ModelState dentro del código de carpeta de modelo personalizado?
Su solución tiene que ser pegajosos en stackoverflow. He estado buscando y experimentando hasta que encontré esto tuyo. Te garantizo, no mucha gente sabe de este truco. ¡Salvaste mis días! ¡Gracias! – Stack0verflow
Intenté su solución, y funcionó para mi situación. ¿Podría echar un vistazo a mi pregunta en http://stackoverflow.com/questions/23145780/asp-net-mvc-4-how-to-validate-my-model-in-a-custom-model-binder? ¡Gracias! – Stack0verflow