2009-10-07 11 views
1

J'ai vu un post similaire qui essayait de faire la même chose avec l'exemple Dinner, mais il a corrigé son problème, le mien semble être un peu plus profond. Fondamentalement, je peux obtenir la validation de travailler très bien, mais cela ne fonctionne que dans Firefox. Dans IE7 lorsque la page se charge, j'obtiens immédiatement une boîte d'alerte avec le message suivant: "Erreur: Le titre de l'élément n'est pas sous une forme" ... Clairement c'est dans le formulaire ici, Si nécessaire je peux poster le balisage réellement rendu de voir la source pour le montrer. Toute idée sur ce que je peux faire pour résoudre ce problème serait très appréciée! Fondamentalement, j'essaie juste de m'assurer que mon NewsPost a un titre et un corps. Depuis que je l'ai enveloppé dans le ViewModel je pense que IE ne comprend pas tout à fait cela. Peut-être que je me trompe. J'utilise xVal pour ma validation. Je passe un ViewModel en tant que mon modèle. Mon ViewModel ressemble à ceci:Utiliser xVal et un ViewModel

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; 
    } 
} 

Voici mon avis:

<%@ 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>()%> 

Et enfin mon action post:

[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

Bump ... Quelqu'un at-il idées ??? – Gabe

+0

Est-ce que cela a réellement fait grimper la question? Je ne pense pas que cela a fonctionné sur SO. –

Répondre

1

Je couru dans le même problème que vous avez. Honnêtement, il ne semble pas que vous ayez fait le bordel comme je l'ai fait, mais peut-être que cela vous dirigera vers la solution.

Le formulaire d'entrée de mine avec la validation du client xVal a été chargé dynamiquement (jquery ajax call) dans la page. Malheureusement, j'ai oublié que je plaçais le HTML retourné dans l'élément qui a déjà «forme» entre les éléments parents. Parce qu'il était une demande ajax, imbriqués les éléments « forme » où présents sur la page, et la méthode xVal « _attachRuleToDOMElement » est mis en œuvre ainsi:

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"); 

mine parentForm.lengts était 2!

Je vois que vous n'avez pas de formulaire imbriqué ici, mais peut-être que dans la page maître il y a quelque chose? Peut-être que IE7 rend les formes imbriquées et Firefox ne le fait pas. Aussi, je nommerais les contrôles d'entrée différemment, bien que cela ne devrait pas être la source du problème:

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

et je fixerait elementPrefix aussi:

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

Je ne vois pas exactement ce que vous avez fait pour résoudre le problème ici ... qu'avez-vous fait pour résoudre ce problème? – Gabe

+0

J'ai réarrangé mon code HTML pour ne pas avoir d'éléments de formulaire imbriqués. parentForm.length est maintenant 1, au lieu de 2. Cependant, si vous avez des formes imbriquées, c'est l'auteur du problème et vous devriez essayer de trouver le moyen de l'éviter. Non seulement à cause du problème, mais parce que ce n'est pas valide html par les normes du W3C: http://www.w3.org/TR/xhtml1/#prohibitions –

+0

Depuis que j'ai mis le préfixe, cela a fonctionné. La raison pour laquelle il se plaignait dans IE que 'title' n'était pas sous une forme, c'est parce qu'il regardait dans la tête, pas la valeur d'un élément ID de titre .... pas sûr pourquoi IE le fait mais FF doesn 't. mais de toute façon le préfixe a fonctionné. – <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">Questions connexes</div> <ul class="relative_list"> <li> 1. <a href="http://fr.voidcc.com/question/p-ahymjdlz-n.html" target="_blank" title="xVal et le motif ViewModel - peut-il être fait?"> xVal et le motif ViewModel - peut-il être fait? </a> </li> <li> 2. <a href="http://fr.voidcc.com/question/p-wwqxffmb-k.html" target="_blank" title="Xval et Tinymce"> Xval et Tinymce </a> </li> <li> 3. <a href="http://fr.voidcc.com/question/p-unbcaqug-b.html" target="_blank" title="Opérateurs Xval et Comparsion?"> Opérateurs Xval et Comparsion? </a> </li> <li> 4. <a href="http://fr.voidcc.com/question/p-vckzwrkj-c.html" target="_blank" title="test xVal"> test xVal </a> </li> <li> 5. <a href="http://fr.voidcc.com/question/p-xuloaxuw-a.html" target="_blank" title="XVal, JQuery Valider, et Ajax oh mon!"> XVal, JQuery Valider, et Ajax oh mon! </a> </li> <li> 6. <a href="http://fr.voidcc.com/question/p-tddkeciu-r.html" target="_blank" title="Un exemple de xVal avec ASP.NET WebForms?"> Un exemple de xVal avec ASP.NET WebForms? </a> </li> <li> 7. <a href="http://fr.voidcc.com/question/p-owqxgaqt-p.html" target="_blank" title="Validation xVal avec Spring.net"> Validation xVal avec Spring.net </a> </li> <li> 8. <a href="http://fr.voidcc.com/question/p-dfdfgpuw-g.html" target="_blank" title="ASP.Net MVC et jQuery DatePicker ViewModel"> ASP.Net MVC et jQuery DatePicker ViewModel </a> </li> <li> 9. <a href="http://fr.voidcc.com/question/p-ufvdsvxb-e.html" target="_blank" title="GlobalSettings ViewModel"> GlobalSettings ViewModel </a> </li> <li> 10. <a href="http://fr.voidcc.com/question/p-fvyjffkd-d.html" target="_blank" title="Appeler les méthodes ViewModel"> Appeler les méthodes ViewModel </a> </li> <li> 11. <a href="http://fr.voidcc.com/question/p-ncynnpgo-a.html" target="_blank" title="Fourniture de données ViewModel au design pour Blend et VS"> Fourniture de données ViewModel au design pour Blend et VS </a> </li> <li> 12. <a href="http://fr.voidcc.com/question/p-sywseinr-r.html" target="_blank" title="MVC personnalisé viewmodel problèmes"> MVC personnalisé viewmodel problèmes </a> </li> <li> 13. <a href="http://fr.voidcc.com/question/p-oordkvuz-o.html" target="_blank" title="ViewModel au-dessus de XDocument"> ViewModel au-dessus de XDocument </a> </li> <li> 14. <a href="http://fr.voidcc.com/question/p-usfkbmiw-q.html" target="_blank" title="Messages d'erreur xVal apparaissant deux fois"> Messages d'erreur xVal apparaissant deux fois </a> </li> <li> 15. <a href="http://fr.voidcc.com/question/p-zsjaujej-a.html" target="_blank" title="Validation: Modèle ou ViewModel"> Validation: Modèle ou ViewModel </a> </li> <li> 16. <a href="http://fr.voidcc.com/question/p-pljrgqjt-d.html" target="_blank" title="asp.net forme de l'assistant mvc avec xval"> asp.net forme de l'assistant mvc avec xval </a> </li> <li> 17. <a href="http://fr.voidcc.com/question/p-rahylucr-e.html" target="_blank" title="Que mettre dans votre ViewModel"> Que mettre dans votre ViewModel </a> </li> <li> 18. <a href="http://fr.voidcc.com/question/p-rykxtbxd-o.html" target="_blank" title="Arborescence ViewModel et mise à jour fréquente Arbre de modèle"> Arborescence ViewModel et mise à jour fréquente Arbre de modèle </a> </li> <li> 19. <a href="http://fr.voidcc.com/question/p-supgbpck-e.html" target="_blank" title="Dans WPF, comment puis-je lier au ViewModel et avoir divers éléments XAML liés aux méthodes du ViewModel?"> Dans WPF, comment puis-je lier au ViewModel et avoir divers éléments XAML liés aux méthodes du ViewModel? </a> </li> <li> 20. <a href="http://fr.voidcc.com/question/p-agokomzv-m.html" target="_blank" title="Silverlight DataGrid.Celltemplate Liaison à ViewModel"> Silverlight DataGrid.Celltemplate Liaison à ViewModel </a> </li> <li> 21. <a href="http://fr.voidcc.com/question/p-bldpvqat-g.html" target="_blank" title="WPF: Evénement LostFocus sur un control/view/viewmodel particulier"> WPF: Evénement LostFocus sur un control/view/viewmodel particulier </a> </li> <li> 22. <a href="http://fr.voidcc.com/question/p-dbsmpjat-h.html" target="_blank" title="Model View ViewModel dans WPF avec WebBrowser"> Model View ViewModel dans WPF avec WebBrowser </a> </li> <li> 23. <a href="http://fr.voidcc.com/question/p-hxuksmnm-h.html" target="_blank" title="Comment passer un objet viewmodel spécifique dans CommandParam d'un bouton?"> Comment passer un objet viewmodel spécifique dans CommandParam d'un bouton? </a> </li> <li> 24. <a href="http://fr.voidcc.com/question/p-hajjiccd-e.html" target="_blank" title="Comment puis-je faire fonctionner xVal avec mon extension Html.ValidationImage?"> Comment puis-je faire fonctionner xVal avec mon extension Html.ValidationImage? </a> </li> <li> 25. <a href="http://fr.voidcc.com/question/p-dfwalalu-h.html" target="_blank" title="passant ViewModel à Problème Vue partielle"> passant ViewModel à Problème Vue partielle </a> </li> <li> 26. <a href="http://fr.voidcc.com/question/p-sxewstlr-m.html" target="_blank" title="Liaisons de collection ViewModel dans Silverlight"> Liaisons de collection ViewModel dans Silverlight </a> </li> <li> 27. <a href="http://fr.voidcc.com/question/p-kpupnaih-s.html" target="_blank" title="MVVM - ViewModel qui est aussi une région?"> MVVM - ViewModel qui est aussi une région? </a> </li> <li> 28. <a href="http://fr.voidcc.com/question/p-mvdcvibu-s.html" target="_blank" title="générer viewmodel à partir du modèle?"> générer viewmodel à partir du modèle? </a> </li> <li> 29. <a href="http://fr.voidcc.com/question/p-fyjrtrxa-b.html" target="_blank" title="WPF - MVVM Commande lie Sub ViewModel"> WPF - MVVM Commande lie Sub ViewModel </a> </li> <li> 30. <a href="http://fr.voidcc.com/question/p-wrtkcowq-n.html" target="_blank" title="Est-ce l'utilisation correcte du modèle ViewModel?"> Est-ce l'utilisation correcte du modèle 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=1652515422260"></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"> Dernière question </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://fr.voidcc.com/question/p-blzktirz-bkv.html" target="_blank" title="Dictionnaire de tri Python par clé renvoyant la liste des valeurs itemgetter"> Dictionnaire de tri Python par clé renvoyant la liste des valeurs itemgetter </a> </li> <li class="side_article_list_item"> 2. <a href="http://fr.voidcc.com/question/p-qrjjujkh-bkv.html" target="_blank" title="Elément de formulaire HTML manquant"> Elément de formulaire HTML manquant </a> </li> <li class="side_article_list_item"> 3. <a href="http://fr.voidcc.com/question/p-tlrurzxd-bkv.html" target="_blank" title="mettre à jour le travail déclaratif de jenkins sans construire"> mettre à jour le travail déclaratif de jenkins sans construire </a> </li> <li class="side_article_list_item"> 4. <a href="http://fr.voidcc.com/question/p-qanffkkm-bkv.html" target="_blank" title="Angulaire 2/4: Comment utiliser l'instance de composant existante dans un popup?"> Angulaire 2/4: Comment utiliser l'instance de composant existante dans un popup? </a> </li> <li class="side_article_list_item"> 5. <a href="http://fr.voidcc.com/question/p-cvbaqaxi-bkv.html" target="_blank" title="Connexion Pooling dans flacon en utilisant couchbase comme base de données"> Connexion Pooling dans flacon en utilisant couchbase comme base de données </a> </li> <li class="side_article_list_item"> 6. <a href="http://fr.voidcc.com/question/p-ypautdhc-bkv.html" target="_blank" title="meilleure boucle pour mon VBA Tâche"> meilleure boucle pour mon VBA Tâche </a> </li> <li class="side_article_list_item"> 7. <a href="http://fr.voidcc.com/question/p-wjembuvs-bkv.html" target="_blank" title="NodeJs Express: Listeining à partir de HTTPS dans Amazon EC2 Ubuntu"> NodeJs Express: Listeining à partir de HTTPS dans Amazon EC2 Ubuntu </a> </li> <li class="side_article_list_item"> 8. <a href="http://fr.voidcc.com/question/p-ffkxoogb-bkv.html" target="_blank" title="CopyRecursive ne fonctionne pas dans le script FAKE"> CopyRecursive ne fonctionne pas dans le script FAKE </a> </li> <li class="side_article_list_item"> 9. <a href="http://fr.voidcc.com/question/p-bimdcujo-bkv.html" target="_blank" title="Les types MIME, tels que les images ou les fichiers PDF, ne doivent-ils pas être en base64 ou codés de quelque manière que ce soit?"> Les types MIME, tels que les images ou les fichiers PDF, ne doivent-ils pas être en base64 ou codés de quelque manière que ce soit? </a> </li> <li class="side_article_list_item"> 10. <a href="http://fr.voidcc.com/question/p-yjeakqcc-bkv.html" target="_blank" title="Lecture de fichiers texte et calcul de la longueur moyenne de chaque 3ème mot"> Lecture de fichiers texte et calcul de la longueur moyenne de chaque 3ème mot </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> Questions connexes</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://fr.voidcc.com/question/p-ahymjdlz-n.html" target="_blank" title="xVal et le motif ViewModel - peut-il être fait?"> xVal et le motif ViewModel - peut-il être fait? </a> </li> <li class="side_article_list_item"> 2. <a href="http://fr.voidcc.com/question/p-wwqxffmb-k.html" target="_blank" title="Xval et Tinymce"> Xval et Tinymce </a> </li> <li class="side_article_list_item"> 3. <a href="http://fr.voidcc.com/question/p-unbcaqug-b.html" target="_blank" title="Opérateurs Xval et Comparsion?"> Opérateurs Xval et Comparsion? </a> </li> <li class="side_article_list_item"> 4. <a href="http://fr.voidcc.com/question/p-vckzwrkj-c.html" target="_blank" title="test xVal"> test xVal </a> </li> <li class="side_article_list_item"> 5. <a href="http://fr.voidcc.com/question/p-xuloaxuw-a.html" target="_blank" title="XVal, JQuery Valider, et Ajax oh mon!"> XVal, JQuery Valider, et Ajax oh mon! </a> </li> <li class="side_article_list_item"> 6. <a href="http://fr.voidcc.com/question/p-tddkeciu-r.html" target="_blank" title="Un exemple de xVal avec ASP.NET WebForms?"> Un exemple de xVal avec ASP.NET WebForms? </a> </li> <li class="side_article_list_item"> 7. <a href="http://fr.voidcc.com/question/p-owqxgaqt-p.html" target="_blank" title="Validation xVal avec Spring.net"> Validation xVal avec Spring.net </a> </li> <li class="side_article_list_item"> 8. <a href="http://fr.voidcc.com/question/p-dfdfgpuw-g.html" target="_blank" title="ASP.Net MVC et jQuery DatePicker ViewModel"> ASP.Net MVC et jQuery DatePicker ViewModel </a> </li> <li class="side_article_list_item"> 9. <a href="http://fr.voidcc.com/question/p-ufvdsvxb-e.html" target="_blank" title="GlobalSettings ViewModel"> GlobalSettings ViewModel </a> </li> <li class="side_article_list_item"> 10. <a href="http://fr.voidcc.com/question/p-fvyjffkd-d.html" target="_blank" title="Appeler les méthodes ViewModel"> Appeler les méthodes 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://fr.voidcc.com/contact">Nous contacter</a></li> <li>© 2020 FR.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>