Asp.net mvc 5 “内部模型验证”对话框

Asp.net mvc 5 “内部模型验证”对话框,asp.net-mvc-5,jquery-ui-dialog,editortemplates,Asp.net Mvc 5,Jquery Ui Dialog,Editortemplates,我在我的应用程序中使用MVC5,用户可以创建一个具有零到多个条的Foo 我的Foo创建视图调用HTML.EditorForModel(),它为Foo加载一个编辑器模板。My Foo模板具有HTML.beginfour标记和对HTML.EditorFor(model=>model.Bar)的调用,该调用为没有表单标记但正在使用BeginCollectionItem帮助程序的Bar加载编辑器模板。因此最终结果是Foo和Bar模型都在一个Foo表单中 当用户单击“AddNewBar”按钮时,Ajax调

我在我的应用程序中使用MVC5,用户可以创建一个具有零到多个条的Foo

我的Foo创建视图调用HTML.EditorForModel(),它为Foo加载一个编辑器模板。My Foo模板具有HTML.beginfour标记和对HTML.EditorFor(model=>model.Bar)的调用,该调用为没有表单标记但正在使用BeginCollectionItem帮助程序的Bar加载编辑器模板。因此最终结果是Foo和Bar模型都在一个Foo表单中

当用户单击“AddNewBar”按钮时,Ajax调用会附加新的Bar模板,并在一个Jquery UI对话框中公开它——每次附加后,我都会重新分析表单,以便验证拾取新字段。提交给控制器后,Foo和Foo.bar都会正确发布。耶

我的问题是对话框中的验证没有启动。如果我删除对话框,只在DOM验证中公开条形字段,效果会很好。我认为这是因为对话框(条形图模板)中的内容不包括表单标记。但是,如果我将表单标记添加到Bar模板,那么发送到控制器的操作将失败


在这种情况下,当对话框处于打开状态时,是否可以在对话框中进行模型验证?

回答了我自己的问题。默认情况下,jQuery对话框在body标记之前追加,因此它不在表单中。我使用对话框的“appendTo”选项将其附加到标记