Pergunta

Eu tenho um item modelo

public class EntryInputModel
{
    ...

    [Required(ErrorMessage = "Description is required.", AllowEmptyStrings = false)]
    public virtual string Description { get; set; }
}

e uma ação do controlador

public ActionResult Add([Bind(Exclude = "Id")] EntryInputModel newEntry)
{
    if (ModelState.IsValid)
    {
        var entry = Mapper.Map<EntryInputModel, Entry>(newEntry);

        repository.Add(entry);
        unitOfWork.SaveChanges();
        return RedirectToAction("Details", new { id = entry.Id });
    }
    return RedirectToAction("Create");
}

Quando eu crio um EntryInputModel Em um teste de unidade, defina o Description propriedade para null e passar para o método de ação, eu ainda entendo ModelState.IsValid == true, mesmo que eu tenha depurado e verificado que newEntry.Description == null.

Por que isso não funciona?

Foi útil?

Solução

Isso ocorre porque a ligação ao modelo não ocorre quando você chama uma ação de um teste. A ligação do modelo é o processo de mapeamento de valores de formulário publicado para um tipo e passá -lo como um parâmetro para um método de ação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top