有没有办法在执行期间控制更新顺序TryUpdateModel
?我需要一个属性有效才能更新其他属性,但默认情况下,当另一个属性正在更新时,第二个属性仍然为空。
默认更新顺序是什么?奇怪的是,我的代码中需要的属性首先在模型和表单中声明。我在 Internet 上找不到有关此执行顺序的任何信息。
有没有办法在执行期间控制更新顺序TryUpdateModel
?我需要一个属性有效才能更新其他属性,但默认情况下,当另一个属性正在更新时,第二个属性仍然为空。
默认更新顺序是什么?奇怪的是,我的代码中需要的属性首先在模型和表单中声明。我在 Internet 上找不到有关此执行顺序的任何信息。
在执行 TryUpdateModel 期间有什么方法可以控制更新顺序?
不,不能保证任何订单,您永远不应该指望任何订单。这就是为什么你应该在模型完全绑定而不是在你的视图模型设置器中执行验证的原因。
您可以使用数据注释属性,或者一旦您意识到它们有多么有限(尤其是在条件验证和更复杂的验证场景方面),切换到与 ASP.NET MVC很好地集成的FluentValidation.NET,我强烈推荐您使用它。
据我所知,活页夹获取属性以便在类中输入它们。最后我看到它做了一个 GetProperties,这就是方法加载的方式。
但是,因为这是一个私有实现,所以不要指望它。如果您有这种约束,请创建您自己的 ModelBinder。