Interessante Situation. Ich habe eine Html.TextBox(), die ich aus einer Sicht wie folgt angezeigt:Html.TextBox mit CSS-Klasse angegebenen Konflikten mit Formularüberprüfung css (Eingabe-Validierungs-Fehler)
<%= Html.TextBox("title", Model.Title, new { @class = "txt" }) %>
In meinem Controller, ich habe die folgende, etwas vereinfacht, Validierung auf den Titel. Nehmen Sie für Argumente an, dass es den Fehler findet, und die Ansicht mit der Modestate-Fehlerinformation erneut rendert.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditBook(string title) {
Model = new Book(ControllerContext.RequestContext);
if (String.IsNullOrEmpty(title))
{
title = String.Empty;
ModelState.AddModelError("title", "* Title is a required");
modelState.SetModelValue("title", ValueProvider["title"]);
}
else { // show confirmation }
if (!ModelState.IsValid)
{
return View("EditBook", Model);
}
}
Wenn die Seite neu gerendert, hat mein HTML-Textfeld korrekt die Input-Validierung-Fehlerklasse attached to it ... Aber es ist nutzlos, da es die erste Klasse ist angebracht! Ich brauche es, um alle vorhandenen Stile in meinem Textfeld zu überschreiben. Die HTML-Ausgabe wird wie folgt:
<input type="text" name="title" id="title" class="input-validation-error txt"/>
Nehmen wir die folgende CSS-Stile definiert:
input.txt { border: 1px; color: #000 }
.input-validation-error { border: 2px solid #fff }
Das Problem ist, meine ursprüngliche CSS-Klasse „txt“ hat Vorrang, und verhindert, dass ich in der Lage, um das Fehlertextfeld korrekt zu formatieren.
Irgendwelche Gedanken?
Erinnern Sie mehr als ein Selektor für eine CSS-Regel haben: 'input.input-validation-Fehler.input-validation-error {border: 2px solid #fff} 'so verlieren Sie nicht den Stil auf nicht- Elemente mit Klasse Eingabe-Validierung-Fehler. –