2017-05-23 17 views
0

사용자가 0에서 여러 개의 막대가있는 Foo를 만들 수있는 MVC 5를 사용하고 있습니다.대화 상자에서 모델 유효성 검사

Foo 용 내 작성보기는 Foo 용 편집기 템플리트를로드하는 HTML.EditorForModel()을 호출합니다. My Foo 템플릿에는 Form 태그가없고 BeginCollectionItem 도우미를 사용하는 Bar 용 편집기 템플릿을로드하는 HTML.BeginForm 태그와 Html.EditorFor (model => Model.Bar)에 대한 호출이 있습니다. 결과적으로 Foo와 Bar 모델은 하나의 Foo 형식 안에 있습니다.

사용자가 "Add new Bar"버튼을 클릭하면 Ajax 호출은 새로운 Bar 템플릿을 추가하고이를 Jquery UI 대화 상자에 표시합니다. 추가 할 때마다 폼을 다시 파싱하므로 유효성 검사가 새 필드를 선택합니다 . 컨트롤러에 제출하면 Foo와 Foo.Bars가 올바르게 게시됩니다. 예!

내 문제는 대화 상자에서 유효성 검사가 실행되지 않는다는 것입니다. 대화 상자를 삭제하고 DOM 유효성 검사에서 막대 필드 만 표시하면 큰 효과가 있습니다. 대화 상자 (Bar 템플릿)의 내용에 Form 태그가 포함되어 있지 않기 때문입니다. 그러나 폼 템플릿을 Bar 템플릿에 추가하면 컨트롤러에 대한 게시가 실패합니다.

이 시나리오에서 열려있는 동안 모델 유효성 검사가 대화 상자에서 작동하도록 할 수 있습니까?

답변

0

내 질문에 답했습니다. 기본적으로 jQuery 대화 상자는 본문 태그 바로 앞에 추가되므로 양식 안에 있지 않습니다. 대신 대화 상자의 "appendTo"옵션을 사용하여 태그에 추가했습니다.