tengo una pequeña aplicación en la que estoy creando un clienteASP.NET MVC - ModelState.IsValid es falso, ¿cómo omitir?
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CreateCustomer(GWCustomer customer)
{
if (string.IsNullOrEmpty(customer.CustomerName))
{
ModelState.AddModelError("CustomerName", "The name cannot be empty");
}
//...
if (ModelState.IsValid)
{
//insert in db
}
}
Mi problema es que el objeto tiene una GWCustomer
Id
, que es la clave primaria y no puede ser nulo. Esto hace que el marco de validación lo señale como un error. Pero no es un error, todavía no he creado el cliente, y por ahora debe ser nulo hasta que se guarde. ¿Cómo evito esto? ¿O arreglarlo?
Nunca consigo insertarlo en el DB porque el ModelState
nunca es válido.
Editar Estoy utilizando Linq a SQL, y un patrón de repositorio.
No nos ha dado ninguna información acerca de cómo está realmente validando. Probablemente quieras incluir esto. ¿Qué marco de validación? ¿Cómo son los atributos/métodos de validación? – Aaronaught
Con EntityFramework, le pedirá al modelo o DAO un nuevo objeto predeterminado, luego complete los datos. En Metske Design Patterns, se llama "Builder", mientras que lo que estás probando es "Prototype". A MVC podría gustarle ese enfoque un poco más. –
Su edición aún no explica nada sobre el "marco de validación". Linq to SQL y Repository Pattern no son marcos de validación. Linq to SQL es un asignador relacional de objetos y el patrón de repositorio es una abstracción CRUD. Ninguno de estos interactúa con el ModelState. ¿De dónde viene realmente el error de validación de ID? ¿Qué clase/componente? ¿Dónde está la línea de código que realmente valida la identificación? – Aaronaught