我使用MVC 5爲我的應用程序,其中用戶可以創建一個具有零到許多酒吧的Foo。模型驗證對話框內
我爲Foo創建的視圖調用爲Foo加載編輯器模板的HTML.EditorForModel()。我的Foo模板具有HTML.BeginForm標記和對Html.EditorFor(model => Model.Bar)的調用,它爲Bar沒有Form標記但是使用BeginCollectionItem幫助器加載編輯器模板。所以最終的結果是Foo和Bar模型都在一個Foo形式中。
當用戶點擊「Add new Bar」按鈕時,Ajax調用會附加新的Bar模板並將其公開在Jquery UI對話框中 - 並且在每次追加後,我將重新分析表單,以便驗證拾取新字段。在提交給控制器時,Foo和Foo.Bars都會正確發佈。好極了!
我的問題是,在對話框驗證不會觸發。如果我放棄對話框,只是暴露了DOM驗證中的Bar字段效果很好。我認爲這是因爲對話框中的內容(酒吧模板)不包含Form標籤。但是,如果我將表單標籤添加到條形模板,那麼發佈到控制器失敗。
在這種情況下打開對話框時,可以在對話框中使用模型驗證嗎?