这个解释起来有点棘手,所以我接受可能需要更多细节。
我正在做一个 MVC3 项目。我有两个具有多对多关系的对象,因此我将模型设计如下:
对象1
int ID
IEnumerable<Object2> Object2s
对象2
int ID
[Required]
string Name
IEnumerable<Object1> Objects1s
然后我想使用一个表单更新 Object1,这包括 Object2 中每个 Object2 的复选框列表。如果应该从 Object2s 中删除 Object2,将检查这些内容。该视图类似于以下内容:
@Html.EditorFor(c => c.ID)
if (Model.Object2s.Count() > 0)
{
@Html.EditorFor(c => c.Object2s)
}
注意 - c.Object2s 的 EditorFor 是自定义 EditorTemplate。
我遇到的问题是,当服务器端验证启动时,它会报告错误,因为每个 Object2 对象都没有设置其 Name 属性。Name 属性对我来说并不重要,只是为了更新 Object1。
IEnumerable<Object>
我用而不是定义对象是否出错了IEnumerable<int>
?
或者是否有另一种方法来停止对 Object2 的验证?