0

我有一个模型项目

public class EntryInputModel
{
    ...

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

和一个控制器动作

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");
}

EntryInputModel当我在单元测试中创建一个,将Description属性设置为null并将其传递给操作方法时,我仍然得到ModelState.IsValid == true,即使我已经调试并验证了newEntry.Description == null.

为什么这不起作用?

4

1 回答 1

0

这是因为当您从测试中调用操作时,模型绑定不会发生。模型绑定是将发布的表单值映射到类型并将其作为参数传递给操作方法的过程。

于 2010-04-06T03:15:08.450 回答