【问题标题】:Model object validates (TryValidateModel) but does not update (TryUpdateModel)模型对象验证 (TryValidateModel) 但不更新 (TryUpdateModel)
【发布时间】:2010-05-26 12:34:00
【问题描述】:

模型对象拒绝在生产服务器上更新,但在开发机器上没有问题。出于测试目的,我检索模型对象,然后立即检查其验证和更新状态,例如:

        Timesheet timesheet = _timesheetRepository.GetTimesheet(timesheetId);
        Helpers.ErrorHandler check = new Helpers.ErrorHandler();
        check.write("can I validate immediately? :- ", TryValidateModel(timesheet).ToString());
        check.write("can I save immediately? :- ", TryUpdateModel(timesheet).ToString());

TryValidateModel - 返回真 TryUpdateModel - 返回 false

有什么建议吗?

【问题讨论】:

  • TryUpdateModel 之后 ModelState.Errors 里面有什么?这应该是它放置发生的任何错误的地方。或者尝试 UpdateModel 并捕获异常并查看它的含义。
  • 似乎有日期绑定问题 - 这可以解释机器之间的差异 - 本地化问题??

标签: asp.net-mvc model-view-controller validation updatemodel


【解决方案1】:

验证和绑定是不同的。通常可以绑定无效数据(这是一项功能;它使在出现错误的情况下重新显示页面更容易)和“有效”(根据您的验证规则,如果有的话)数据由于打字冲突,有时无法绑定。

【讨论】:

  • 是的,我很欣赏验证和绑定的概念,它是 WPF 的基石,但更重要的是——所以问题是如何进行调试和隔离问题?
  • 我个人通过building MVC with source调试绑定并跟踪它。
  • 不错。这就是我需要的,因为我已经调试到元数据,没有任何异常显示 - 谢谢一百万!
猜你喜欢
  • 1970-01-01
  • 2021-07-24
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
相关资源
最近更新 更多