小编Her*_*eep的帖子

刷新ModelState以删除错误

刷新ModelState

嗨,我对ASP.NET MVC控制器中的ModelState有疑问.

当用户从视图中选择某个选项时,将根据输入的其他日期设置"认证"的开始日期和结束日期.

这个问题是认证日期返回为null,我们的CertificationMetaData类将字段指定为[必需],因此一旦操作加载,ModelState就无效.

手动删除ModelSate错误允许这个工作,但我想知道是否有更好的方法来做到这一点?有没有办法刷新ModelState?我应该不要求这些字段吗?或者我应该使用javascript从视图中添加日期值?

public ActionResult Create(FormCollection fc, Certification certification, Absence absence)
{
    if (certification.CertificationTypeID == 1)
    {
        certification.CertificationStartDate = absence.StartDate;
        certification.CertificationEndDate = absence.StartDate.AddDays(7);
        this.ModelState.Remove("CertificationStartDate");
        this.ModelState.Remove("CertificationEndDate");
    }

    if (this.ModelState.IsValid)
    {
        // save
        return RedirectToAction("Index");
    }
     return View();
}
Run Code Online (Sandbox Code Playgroud)

另外,您可以看到我已经对证书类型的ID值进行了硬编码.将值与查找表值进行比较的最佳方法是什么?enum是最好的方式吗?

谢谢

c# asp.net-mvc modelstate

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

modelstate ×1