2009-10-07 2 views
1

Dinner 예제에서 이와 똑같은 작업을 시도했던 유사한 게시물을 보았지만 문제가 해결 된 것 같습니다. 조금 더 깊은 것 같습니다. 기본적으로 나는 cxan이 잘 작동하도록 검증을 얻지 만 파이어 폭스에서만 작동합니다. IE7에서는 페이지가로드 될 때 즉시 다음 메시지가 포함 된 경고 상자가 나타납니다. "오류 : 요소 제목이 양식에 없습니다"... 분명히 여기에 양식이 있습니다. 필요한 경우 실제로 렌더링 된 태그를 게시 할 수 있습니다. 보기 소스에서이를 보여줍니다. 이 문제를 해결하기 위해 내가 할 수있는 일에 대한 아이디어가 가장 만족 스러울 것입니다!xVal 및 ViewModel 사용

기본적으로 내 NewsPost에 제목과 본문이 있는지 확인하려고합니다. 이후 ViewModel에 싸서 나는 IE가 이것을 이해하고 있다고 생각 해요. 어쩌면 내가 틀렸어.

유효성 확인을 위해 xVal을 사용하고 있습니다. ViewModel을 내 모델로 전달하고 있습니다. 내 뷰 모델은 다음과 같습니다

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MVCApp.Models.ViewModels.News.NewsAdminViewData>" %> 

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
     <% using (Html.BeginForm()) 
      {%> 
     <div class="moduleContainer"> 
      <div class="moduleTitle"> 
       Create News Item 
      </div> 
      <div class="moduleContent"> 
       <div> 
        <div> 
         Title:</div> 
        <div> 
         <%= Html.TextBox("Title") %> 
        </div> 
       </div> 
       <div> 
        <div> 
         &nbsp;</div> 
        <div> 
         <%= Html.TextArea("Body") %> 
        </div> 
       </div> 
       <div> 
        <div> 
         News Group: 
        </div> 
        <div> 
         <%= Html.DropDownList("NewsGroup")%> 
        </div> 
       </div> 
       <div> 
        <div> 
         News Item: 
        </div> 
        <div> 
         <%= Html.DropDownList("NewsItem") %> 
        </div> 
       </div> 
      </div> 
      <div class="moduleFooter"> 
       <%= Html.SubmitButton("btnSubmit", "Add News Post", null, "To add this news post click here.", "#ffd40f")%> 
      </div> 
     </div> 
     <% } %> 
     <%= Html.ClientSideValidation<NewsPost>()%> 

그리고 마지막으로 내 게시물 액션 : 당신이 가지고있는

[AcceptVerbs(HttpVerbs.Post)] 
    public virtual ActionResult Create(/*FormCollection collection*/ NewsPost np) 
    { 
     NewsPost entity = this.reposNewsPost.New(); 
     try 
     { 
      entity.Title = np.Title; 
      entity.NewsPostGUID = System.Guid.NewGuid(); 
      entity.DateAdded = DateTime.Now; 
      entity.DateUpdated = DateTime.Now; 
      entity.Body = np.Body; 

      UpdateModel(entity); 
      this.reposNewsPost.Insert(entity); 
      this.reposNewsPost.SubmitChanges(); 
      return RedirectToAction("Index"); 
     } 
     catch (RulesException ex) 
     { 
      ex.AddModelStateErrors(ModelState, "NewsPost"); 
      return ModelState.IsValid ? RedirectToAction(MVC.News.Actions.Create) 
         : (ActionResult)View(); 
     } 
    } 
+0

범프 ... 누구나 어떤이 아이디어 ??? – Gabe

+0

실제로 문제가 발생 했습니까? 나는 그게 효과가 있다고 생각하지 않았다. –

답변

1

내가 비슷한 문제로 실행

public class NewsAdminViewData : ViewModel 
{ 
    public NewsPost NewsPost { get; set; } 
    public List<SelectListItem> NewsItem { get; set; } 
    public List<SelectListItem> NewsGroup { get; set; } 

    public NewsAdminViewData(List<SelectListItem> newsItem, List<SelectListItem> newsGroup, NewsPost newsPost) 
    { 
     this.NewsItem = newsItem; 
     this.NewsGroup = newsGroup; 
     this.NewsPost = newsPost; 
    } 
} 

여기 내보기입니다. 솔직히, 내가 가진 것처럼 엉망진창을 만든 것처럼 보이지는 않지만, 아마도 당신을 해결책으로 안내 할 것입니다.

xVal 클라이언트 유효성 검사가있는 입력 양식이 동적으로 페이지에로드되었습니다 (jquery ajax 호출). 불행히도, 나는 반환 된 html을 이미 부모 요소 사이에 'form'이있는 요소에 배치하고 있다는 것을 간과했다.

var parentForm = element.parents("form"); 
     if (parentForm.length != 1)// <-- there can be only one parent form of course 
      alert("Error: Element " + element.attr("id") + " is not in a form"); 

광산 parentForm.lengts 2되었다 : 그것은 AJAX 요청을했기 때문에, 페이지 상에 존재하고, 경우 xval 방법 "_attachRuleToDOMElement"중첩 "형태"요소는이 방식을 구현!

여기에 중첩 된 양식이 없지만 마스터 페이지에는 무언가가있을 것입니다. Internet Explorer 7은 중첩 된 양식을 렌더링 할 수 있으며 Firefox는 그렇지 않을 수 있습니다. 이 문제의 원인이 될 지 않지만, 또한, 나는 다르게 입력 컨트롤의 이름을 것입니다 :

<%= Html.TextBox("np.Title") %>...<%= Html.TextBox("np.Body") %> etc... 

하고 너무 elementPrefix을 설정합니다 :

<%= Html.ClientSideValidation<NewsPost>("np")%> 
+0

나는 당신이이 문제를 극복하기 위해 무엇을했는지 정확히 알지 못합니다 ... 그 문제를 해결하기 위해 무엇을 했습니까? – Gabe

+0

중첩 된 양식 요소가 없도록 내 HTML을 재정렬했습니다. parentForm.length는 이제 2 대신 1입니다. 그러나 중첩 된 양식이있는 경우 이것이 문제의 원인이며이를 피하는 방법을 찾아야합니다. 문제 때문에뿐만 아니라 W3C 표준에 의해 유효한 html이 아니기 때문에 : http://www.w3.org/TR/xhtml1/#prohibitions –

+0

접두사를 붙이기 때문에, 그것은 효과가있었습니다. IE에서 '제목'이 형식이 아님을 불평하는 이유는 머리 속에 을보고 있었기 때문입니다. 요소 ID의 제목 값이 아닙니다 .... IE가 왜 그런지는 모르지만 FF는 아닙니다. '티. 그러나 어느 쪽의 방법으로 접두사가 효과가 있었다. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/106403/">Gabe</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">관련 문제</div> <ul class="relative_list"> <li> 1. <a href="http://ko.voidcc.com/question/p-dfjvpioh-k.html" target="_blank" title="Xval 및 Tinymce"> Xval 및 Tinymce </a> </li> <li> 2. <a href="http://ko.voidcc.com/question/p-qnzlyoro-ds.html" target="_blank" title="ViewModel 사용 방법"> ViewModel 사용 방법 </a> </li> <li> 3. <a href="http://ko.voidcc.com/question/p-xcfjurql-cw.html" target="_blank" title="xVal 및 jQuery 제출 버튼"> xVal 및 jQuery 제출 버튼 </a> </li> <li> 4. <a href="http://ko.voidcc.com/question/p-miudpuoa-r.html" target="_blank" title="ASP.NET WebForms의 xVal 예제?"> ASP.NET WebForms의 xVal 예제? </a> </li> <li> 5. <a href="http://ko.voidcc.com/question/p-sjhoxibw-do.html" target="_blank" title="ASP.NET MVC 마법사 및 xVal 유효성 검사"> ASP.NET MVC 마법사 및 xVal 유효성 검사 </a> </li> <li> 6. <a href="http://ko.voidcc.com/question/p-hxqdvrls-a.html" target="_blank" title="XVal, JQuery Validate 및 Ajax oh my!"> XVal, JQuery Validate 및 Ajax oh my! </a> </li> <li> 7. <a href="http://ko.voidcc.com/question/p-xwjzdzhk-dn.html" target="_blank" title="ASP.NET에서 ViewModel 사용 FluentValidation을 사용하는 MVC"> ASP.NET에서 ViewModel 사용 FluentValidation을 사용하는 MVC </a> </li> <li> 8. <a href="http://ko.voidcc.com/question/p-uhuezebx-r.html" target="_blank" title="xVal, 전체 클래스의 DataAnnotations"> xVal, 전체 클래스의 DataAnnotations </a> </li> <li> 9. <a href="http://ko.voidcc.com/question/p-mpelxhza-x.html" target="_blank" title="XAML DataContext 및 ViewModel 유형"> XAML DataContext 및 ViewModel 유형 </a> </li> <li> 10. <a href="http://ko.voidcc.com/question/p-alsfydkh-cn.html" target="_blank" title="WPF 및 ViewModel 속성 액세스"> WPF 및 ViewModel 속성 액세스 </a> </li> <li> 11. <a href="http://ko.voidcc.com/question/p-gomoasgp-cg.html" target="_blank" title="Viewmodel 컬렉션 및 기타 객체"> Viewmodel 컬렉션 및 기타 객체 </a> </li> <li> 12. <a href="http://ko.voidcc.com/question/p-bdvwidhq-cy.html" target="_blank" title="컬렉션 및 ViewModel 패턴 조작"> 컬렉션 및 ViewModel 패턴 조작 </a> </li> <li> 13. <a href="http://ko.voidcc.com/question/p-dwltqvsp-cm.html" target="_blank" title="MVC 3 ViewModel 패턴 문제 (RAZOR 사용)"> MVC 3 ViewModel 패턴 문제 (RAZOR 사용) </a> </li> <li> 14. <a href="http://ko.voidcc.com/question/p-slbvuchh-c.html" target="_blank" title="경우 xval 테스트"> 경우 xval 테스트 </a> </li> <li> 15. <a href="http://ko.voidcc.com/question/p-sjtnbidq-dg.html" target="_blank" title="xVal 숨겨진 필드를 무시합니다."> xVal 숨겨진 필드를 무시합니다. </a> </li> <li> 16. <a href="http://ko.voidcc.com/question/p-dazehgzz-ca.html" target="_blank" title="ViewModel 빌드"> ViewModel 빌드 </a> </li> <li> 17. <a href="http://ko.voidcc.com/question/p-zxqpzhoa-k.html" target="_blank" title="xVal Cliend 측면 유효성 검사 (Ajax, RenderPartial 양식 사용)"> xVal Cliend 측면 유효성 검사 (Ajax, RenderPartial 양식 사용) </a> </li> <li> 18. <a href="http://ko.voidcc.com/question/p-yayumbjx-dm.html" target="_blank" title="MVVM 바인딩 viewmodel 속성 viewmodel 속성"> MVVM 바인딩 viewmodel 속성 viewmodel 속성 </a> </li> <li> 19. <a href="http://ko.voidcc.com/question/p-mkchbblq-p.html" target="_blank" title="Spring.net을 통한 xVal 유효성 확인"> Spring.net을 통한 xVal 유효성 확인 </a> </li> <li> 20. <a href="http://ko.voidcc.com/question/p-epspebrn-bk.html" target="_blank" title="asp.net mvc xval 유효성 검사"> asp.net mvc xval 유효성 검사 </a> </li> <li> 21. <a href="http://ko.voidcc.com/question/p-fodhjgml-x.html" target="_blank" title="xval 리소스 파일에서 메시지 받기"> xval 리소스 파일에서 메시지 받기 </a> </li> <li> 22. <a href="http://ko.voidcc.com/question/p-qxtakltx-db.html" target="_blank" title="xVal Validation with Nhibernate Validator"> xVal Validation with Nhibernate Validator </a> </li> <li> 23. <a href="http://ko.voidcc.com/question/p-uxfqulwp-x.html" target="_blank" title="ViewModel 질문"> ViewModel 질문 </a> </li> <li> 24. <a href="http://ko.voidcc.com/question/p-mkixdkps-bv.html" target="_blank" title="DTO = ViewModel?"> DTO = ViewModel? </a> </li> <li> 25. <a href="http://ko.voidcc.com/question/p-rigtmbku-br.html" target="_blank" title="의 ViewModel"> 의 ViewModel </a> </li> <li> 26. <a href="http://ko.voidcc.com/question/p-vkcdkdpw-e.html" target="_blank" title="GlobalSettings ViewModel"> GlobalSettings ViewModel </a> </li> <li> 27. <a href="http://ko.voidcc.com/question/p-dbbitimp-dr.html" target="_blank" title="ASP.NET MVC 3 모델 및 viewmodel 클래스"> ASP.NET MVC 3 모델 및 viewmodel 클래스 </a> </li> <li> 28. <a href="http://ko.voidcc.com/question/p-niooeunt-cb.html" target="_blank" title="ASP.NET MVC에서 DDD, viewmodel 및 유효성 검사"> ASP.NET MVC에서 DDD, viewmodel 및 유효성 검사 </a> </li> <li> 29. <a href="http://ko.voidcc.com/question/p-baobhmbw-bn.html" target="_blank" title="Silverlight에서 ViewModel 책임 및 하위 창 팝업"> Silverlight에서 ViewModel 책임 및 하위 창 팝업 </a> </li> <li> 30. <a href="http://ko.voidcc.com/question/p-hkhehbyk-cw.html" target="_blank" title="WPF ComboBox XML 바인딩 및 ViewModel 바인딩?"> WPF ComboBox XML 바인딩 및 ViewModel 바인딩? </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422614"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 최근 질문 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ko.voidcc.com/question/p-mfetobfx-yu.html" target="_blank" title="kv 언어로 속성을 바인딩하는 방법은 무엇입니까?"> kv 언어로 속성을 바인딩하는 방법은 무엇입니까? </a> </li> <li class="side_article_list_item"> 2. <a href="http://ko.voidcc.com/question/p-ubyuuhpb-yx.html" target="_blank" title="Node.js 라우팅 익스프레스 -/"> Node.js 라우팅 익스프레스 -/ </a> </li> <li class="side_article_list_item"> 3. <a href="http://ko.voidcc.com/question/p-uhyfaend-xv.html" target="_blank" title="Pandas DataFrame - dtype == 'category'열이 누적 된 성능 열"> Pandas DataFrame - dtype == 'category'열이 누적 된 성능 열 </a> </li> <li class="side_article_list_item"> 4. <a href="http://ko.voidcc.com/question/p-gvoishpj-xw.html" target="_blank" title="resources_rc.py에서 resource.qrc 파일을 복원하는 방법"> resources_rc.py에서 resource.qrc 파일을 복원하는 방법 </a> </li> <li class="side_article_list_item"> 5. <a href="http://ko.voidcc.com/question/p-kdegflpd-xx.html" target="_blank" title="중첩 된 UIStackView에있는 TextField의 절대 원점 찾기"> 중첩 된 UIStackView에있는 TextField의 절대 원점 찾기 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ko.voidcc.com/question/p-brzqkdej-yc.html" target="_blank" title="파일에서 복원 된 그래프에서 DropoutWrapper의 output_keep_prob를 설정하는 방법"> 파일에서 복원 된 그래프에서 DropoutWrapper의 output_keep_prob를 설정하는 방법 </a> </li> <li class="side_article_list_item"> 7. <a href="http://ko.voidcc.com/question/p-nabpvkzb-yb.html" target="_blank" title="언어에 따라 단일 TextView에 여러 TypeFace를 적용하는 방법은 무엇입니까?"> 언어에 따라 단일 TextView에 여러 TypeFace를 적용하는 방법은 무엇입니까? </a> </li> <li class="side_article_list_item"> 8. <a href="http://ko.voidcc.com/question/p-unnibvuu-ya.html" target="_blank" title=""+ {}"네임 스페이스 태그를 사용하면 나타나지 않습니다."> "+ {}"네임 스페이스 태그를 사용하면 나타나지 않습니다. </a> </li> <li class="side_article_list_item"> 9. <a href="http://ko.voidcc.com/question/p-exvqqvsf-ya.html" target="_blank" title="런타임 리플렉션을 사용하여 표준 lib (Java 또는 Scala)에없는 기본 클래스를 결정합니다."> 런타임 리플렉션을 사용하여 표준 lib (Java 또는 Scala)에없는 기본 클래스를 결정합니다. </a> </li> <li class="side_article_list_item"> 10. <a href="http://ko.voidcc.com/question/p-zbjyeipl-xz.html" target="_blank" title="HTML 구문 분석 금지 된 오류"> HTML 구문 분석 금지 된 오류 </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 관련 문제</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ko.voidcc.com/question/p-dfjvpioh-k.html" target="_blank" title="Xval 및 Tinymce"> Xval 및 Tinymce </a> </li> <li class="side_article_list_item"> 2. <a href="http://ko.voidcc.com/question/p-qnzlyoro-ds.html" target="_blank" title="ViewModel 사용 방법"> ViewModel 사용 방법 </a> </li> <li class="side_article_list_item"> 3. <a href="http://ko.voidcc.com/question/p-xcfjurql-cw.html" target="_blank" title="xVal 및 jQuery 제출 버튼"> xVal 및 jQuery 제출 버튼 </a> </li> <li class="side_article_list_item"> 4. <a href="http://ko.voidcc.com/question/p-miudpuoa-r.html" target="_blank" title="ASP.NET WebForms의 xVal 예제?"> ASP.NET WebForms의 xVal 예제? </a> </li> <li class="side_article_list_item"> 5. <a href="http://ko.voidcc.com/question/p-sjhoxibw-do.html" target="_blank" title="ASP.NET MVC 마법사 및 xVal 유효성 검사"> ASP.NET MVC 마법사 및 xVal 유효성 검사 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ko.voidcc.com/question/p-hxqdvrls-a.html" target="_blank" title="XVal, JQuery Validate 및 Ajax oh my!"> XVal, JQuery Validate 및 Ajax oh my! </a> </li> <li class="side_article_list_item"> 7. <a href="http://ko.voidcc.com/question/p-xwjzdzhk-dn.html" target="_blank" title="ASP.NET에서 ViewModel 사용 FluentValidation을 사용하는 MVC"> ASP.NET에서 ViewModel 사용 FluentValidation을 사용하는 MVC </a> </li> <li class="side_article_list_item"> 8. <a href="http://ko.voidcc.com/question/p-uhuezebx-r.html" target="_blank" title="xVal, 전체 클래스의 DataAnnotations"> xVal, 전체 클래스의 DataAnnotations </a> </li> <li class="side_article_list_item"> 9. <a href="http://ko.voidcc.com/question/p-mpelxhza-x.html" target="_blank" title="XAML DataContext 및 ViewModel 유형"> XAML DataContext 및 ViewModel 유형 </a> </li> <li class="side_article_list_item"> 10. <a href="http://ko.voidcc.com/question/p-alsfydkh-cn.html" target="_blank" title="WPF 및 ViewModel 속성 액세스"> WPF 및 ViewModel 속성 액세스 </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://ko.voidcc.com/contact">문의하기</a></li> <li>© 2020 KO.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>