Je suis en utilisant html5/Rasoir/MVC3 l'effet de levier le Bootstrap modèle à partir de Twitter. Je veux avoir la validation d'un formulaire qui semble lisse comme ils ont documenté (http://twitter.github.com/bootstrap/#forms). Donc, si nous prenons un coup d'oeil à la façon dont le standard de la chaudière-plaque de MVC3 pour l'enregistrement du compte, le balisage ressemblerait à:
@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class="form-stacked" })) {
@Html.ValidationSummary(true, "Snap! Something went wrong")
<div>
<fieldset>
<legend>Account Information</legend>
<div class="clearfix error">
@Html.LabelFor(m => m.UserName)
<div class="input">
@Html.TextBoxFor(m => m.UserName)
<span class="help-inline">@Html.ValidationMessageFor(m => m.UserName)</span>
</div>
</div>
<div class="clearfix">
@Html.LabelFor(m => m.Email)
<div class="input">
@Html.TextBoxFor(m => m.Email)
<span class="help-inline">@Html.ValidationMessageFor(m => m.Email)</span>
</div>
</div>
<div class="clearfix">
@Html.LabelFor(m => m.Password)
<div class="input">
@Html.PasswordFor(m => m.Password)
<span class="help-inline">@Html.ValidationMessageFor(m => m.Password)</span>
</div>
</div>
<div class="clearfix">
@Html.LabelFor(m => m.ConfirmPassword)
<div class="input">
@Html.PasswordFor(m => m.ConfirmPassword)
<span class="help-inline">@Html.ValidationMessageFor(m => m.ConfirmPassword)</span>
</div>
</div>
</fieldset>
<div class="actions">
<button class="btn large primary" type="submit">Register</button>
</div>
</div>
Ce que je veux faire est d'avoir le div conteneur injecter de l ' "erreur" de la classe comme je l'ai codé en dur dans la première entrée. (Donc, en entrant dans la page, la balise div aurait une classe de "clearfix" mais si le bloc d'entrée échec de la validation, il serait le tag ' "clearfix d'erreur"). Je me dis que je vais avoir à mettre à jour le bloc div inclure un identifiant de la sorte, et peut-être ajouter un nouvel attribut data - pour la ValidationMessage. Je n'ai pas de problème de l'extension de l'assistance ValidationMessageFor. Je ne suis pas 100% sûr de ce que l'approche devrait être pour l'extension de la bibliothèque qui est là. Toutes les suggestions sur la manière d'aborder ce?
TIA.
Mise à JOUR:
Je pense que cette approche est raisonnable:
<div id="UserNameContainer" class="clearfix error">
@Html.LabelFor(m => m.UserName)
<div class="input">
@Html.TextBoxFor(m => m.UserName)
<span class="help-inline">@Html.ValidationMessageFor(m => m.UserName, null, new { @data_container = "UserNameContainer" })</span>
</div>
</div>
Par la décoration de mon message de validation avec une base de données-nom du conteneur, j'ai pu, par la suite, div conteneur. Maintenant j'ai juste besoin de comprendre comment intercepter le message de validation.