在我的模型中具有以下方法:
public bool ShowShipping() { return Modalities.Scheduled.Has(Item.Modality); }
Run Code Online (Sandbox Code Playgroud)
但是以前是这样的属性:
public bool ShowShipping { get { return Modalities.Scheduled.Has(Item.Modality); } }
Run Code Online (Sandbox Code Playgroud)
访问页面后,整个模型将填充包含Item属性的数据。项包含需要在视图上显示的数据,但没有需要回发的数据。因此,在回发时(是的,post操作将模型作为参数),Item属性保留为空。
这应该不成问题,因为视图中只有一行代码可以访问ShowShipping。因此,我期望除非填充Item,否则它将永远不会被访问。但是在回发时,我遇到了一个错误,该错误发生在击中我的发布操作的第一行之前,并且在ShowShipping中显示空引用错误。因此,我必须假设错误是在将表单数据序列化为模型的新实例时发生的……但是,当整个解决方案中唯一可以访问它的位置是视图中的一行时,为什么要在序列化中调用此属性? ?