在mvc3中的webgrid中编辑为什么ModelState.IsValid为false,因为条件为真?

时间:2012-04-19 14:09:25

标签: asp.net-mvc asp.net-mvc-3 model-view-controller

[HttpPost]
public ActionResult Index(SecurityMappingModel objModel)
{

    //edit code

    if (objModel.Id != Guid.Empty)
    {
        if (ModelState.IsValid)
        {
            mappings = (List<SecurityMappingModel>)Session["Mappings"];
            var objRemove = mappings.FirstOrDefault(m => m.Id == objModel.Id);
            if (objRemove != null)
            {
                mappings.Remove(objRemove);
                mappings.Add(objModel);
                ViewBag.Mappings = mappings;
            }
            Session["Mappings"] = mappings;
return RedirectToAction("Index");
}

在objModel中,其中一个字段的值为0,因为它是一个文本字段,我将值放入其中但在Controller oject objModel中显示字段值为零:( :(为什么???

1 个答案:

答案 0 :(得分:1)

显然您的某个模型值无效。您应该能够通过查看ModelState.Values中的项目来找出哪一个。每个项目都有一个Errors属性。 此行的结果应包含至少一个项目:

var errors = ModelState.Values.Where(value=>value.Errors.Any());