0

这个解释起来有点棘手,所以我接受可能需要更多细节。

我正在做一个 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 的验证?

4

1 回答 1

0

好的,我无法准确计算出我想要的内容,但通过不绑定Object2s属性解决了这个特定问题。相反,我int[]在控制器中选择了一个复选框并使用它来填充Object2s属性。

于 2012-07-25T11:40:08.887 回答