【发布时间】:2017-05-23 05:18:00
【问题描述】:
我在我的应用程序中使用 MVC 5,用户可以创建一个具有零到多个 Bars 的 Foo。
我的 Foo 创建视图调用 HTML.EditorForModel() 来加载 Foo 的编辑器模板。我的 Foo 模板有 HTML.BeginForm 标记和对 Html.EditorFor(model => Model.Bar) 的调用,它为 Bar 加载一个没有 Form 标记但使用 BeginCollectionItem 帮助器的编辑器模板。所以最终结果是 Foo 和 Bar 模型都在一个 Foo 形式中。
当用户单击“添加新栏”按钮时,Ajax 调用会附加新栏模板并将其公开在 Jquery UI 对话框中 - 每次附加后,我都会重新解析表单,以便验证获取新字段。在提交给控制器时,Foo 和 Foo.Bars 都会正确发布。耶!
我的问题是对话框中的验证没有触发。如果我放下对话框并在 DOM 验证中公开 Bar 字段,效果会很好。我认为这是因为对话框(栏模板)中的内容不包含表单标签。但是,如果我将表单标签添加到 Bar 模板,那么发送到控制器的帖子将失败。
在这种情况下打开对话框时,是否可以在对话框中进行模型验证?
【问题讨论】:
标签: asp.net-mvc-5 jquery-ui-dialog editortemplates