1

Utilisation de ASP.Net MVC1 et création dynamique du code HTML dans un modèle qui est ensuite déposé dans la vue et rendu lors de l'exécution.asp.net mvc 1 validation à l'aide de contrôles créés dynamiquement

Mon point de vue est une page qui ressemble à ceci:

<%@ Page Language="VB" Inherits="System.Web.Mvc.ViewPage" %> 
<%=(ViewData("Content"))%> 

Ce contenu dynamique créé est la plupart du temps des boîtes DropDownList dans le format de

<form method=post action="https://stackoverflow.com/questions/nextBatch"> 
    <div id="text">What is your preferred drink?</div> 
    <select> 
     <option selected value="noSelect"> - Please make a selection - </option> 
     <option value="a" >Milk</option> 
     <option value="b" >Coffee</option> 
     <option value="c" >Tea</option> 
    </select> 
</form> 

Est-il est possible d'effectuer la validation sur le listes déroulantes pour s'assurer qu'une valeur a été sélectionnée? Si l'une des listes déroulantes qui ont toujours la valeur par défaut (le texte "s'il vous plaît faire une sélection") la page est ensuite réaffichée avec la couleur de la police de la question ou la liste déroulante changée pour dire rouge?

Je suis dans le monde de Webforms et j'ai fait le passage à MVC (ce que j'aime vraiment!) Et je sais qu'il existe des outils de validation très pratiques, mais il semble que vous ayez à les prendre en compte dans la vue lui-même.

Je ne peux pas passer un assistant HTML à travers les données de vue du contrôleur car il ne rend pas, sauf s'il a été codé directement dans la vue elle-même.

Aussi, je cherche une solution pure asp.net car je ne peux pas utiliser javascript en raison de problèmes d'accessibilité. Je peux accéder à toutes les valeurs des listes déroulantes sans aucun problème via l'objet formscollection mais de là je suis un peu coincé.

Y at-il quelque chose qui me manque?

Merci beaucoup d'avance pour tout conseil ou aide!

+0

Utilisez un objet ViewModel qui contient des routines de validation, comme décrit dans le didacticiel NerdDinner ici: http://nerddinnerbook.s3.amazonaws.com/Part3.htm –

+0

Vous êtes Contournant vraiment tout le point des modèles en bachotant votre contenu dans des vues comme celle-ci ... – womp

+0

@ Womp Désolé, je ne me suis pas fait comprendre. J'ai écrit que la liste déroulante est créée dynamiquement mais je n'ai pas mentionné que toute la logique et la génération de HTML proviennent des modèles. La seule chose que j'ai à mon avis est ce que j'ai posté dans ma première boîte de code. Btw - site sympa et blog. Vous avez définitivement une passion pour ce genre de choses! – HyperHyper

Répondre

0

Si vous ne pouvez pas utiliser Javascript, le seul moyen d'effectuer la validation est le côté serveur.

Vous pouvez utiliser l'objet ModelState intégré pour manipuler l'erreur. Cet article du blog Scott Guthrie "ASP.NET MVC 2: Model Validation" explique tout cela

Questions connexes