【发布时间】:2009-07-08 12:57:44
【问题描述】:
我的网站有一个部分,用户可以在其中向他们的帐户添加地址。他们可以根据需要添加任意数量(运输、计费等)。
我进行了设置,以便在添加地址后,用户可以在带有“保存”和“删除”按钮的更新表单中看到该地址。用户可以调整他们添加的任何地址。
我遇到的问题是验证。假设需要第 1 行。如果我要更新三个地址中的第二个并将第 1 行留空,则控制器会引发错误(使用来自 Nerd Dinner 的相同技术,顺便说一句)。这很好。糟糕的是,视图中列出的所有地址的所有地址信息现在都显示为引发错误的地址的值。
我知道这与模型绑定有关,但我很困惑,因为表单数据设置如下:
<%= Html.TextBox("Line1", Model.Address.Line1)%>
传入的模型对于我们在客户端地址列表中的地址是唯一的。我不确定为什么“Model.Addres.Line1”中的值被 ModelState ModelErrors 集合中的数据覆盖。我猜默认行为是在错误集合中使用它们存在的值。当视图上有多个表单并且表单使用与其他每个表单相同的输入字段名称时,这是一个问题。
我唯一的解决方法是在此处避免 Html Helper 函数并在 HTML 中对输入进行硬编码吗?
【问题讨论】:
标签: asp.net-mvc binding model