【问题标题】:Model validation inside dialog对话框内的模型验证
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多