【发布时间】:2011-10-15 00:31:01
【问题描述】:
我有一个产品编辑屏幕。用户可以选择产品的供应商。为此,我显示了一个 jQueryUI 对话框,允许他们浏览并选择供应商。当用户选择供应商时,我会更新页面上隐藏的 VendorID 输入,这是我的页面模型的一部分。我还用他们选择的供应商的详细信息更新了几个 div。这些仅用于显示目的 - 仅需要 id 来保存所选供应商。
这一切都很好而且很花哨,除非回发出现错误,在这种情况下,我会重新显示相同的视图。 ModelState 负责保留我所有的表单字段(包括隐藏的 VendorID)。但是,我的带有供应商文本的 div(当然)是空的,因为它们没有发布到服务器。
我首先为每个供应商显示字段创建隐藏字段并将它们放在模型上。然后隐藏字段在回发后仍然存在,但这并不能解决实际在屏幕上重新显示文本的问题。
我能想到的三个选项是:
- 在回发时,如果出现错误,请转到数据库,使用提供的 VendorID 获取 Vendor,然后使用我要显示的文本重新填充模型。
- 使用 RenderAction 并有一个操作来呈现所选供应商的详细信息。
- 使用只读文本框而不是 div 来显示供应商详细信息。
这些对我来说都不是很满意。我觉得我可能错过了一个明显的解决方案。有没有更好的解决方案?
【问题讨论】: