興味深い状況です。私は次のように私はビューからレンダリングHtml.Textbox()持っている:私のコントローラでCSSのクラスが指定されたHtml.TextBoxは、フォームの検証との競合CSS(入力検証エラー)
<%= Html.TextBox("title", Model.Title, new { @class = "txt" }) %>
を、私はタイトルで以下の、やや単純化し、検証を持っています。引数として、エラーが見つかったと仮定し、モデル状態のエラー情報でビューを再レンダリングします。
[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);
}
}
ページが再レンダリングされるときに、私のHTMLテキストボックスが正しくそれに接続されている入力検証エラークラスを持っている...しかし、それは取り付けられた第1のクラスだと、それは無用です!テキストボックスの既存のスタイルをすべて上書きする必要があります。 html出力は次のとおりです。
がinput.txt { border: 1px; color: #000 }
.input-validation-error { border: 2px solid #fff }
問題は、私のオリジナルのCSSクラス「TXT」が優先され、できることから私を妨げている:
<input type="text" name="title" id="title" class="input-validation-error txt"/>
は、以下のCSSスタイルが定義されていると仮定しますエラーテキストボックスを正しくスタイル設定します。
どのような考えですか?
あなたはCSSルールに複数のセレクタを持つことができます忘れないでください: 'input.input検証エラー、
は次のようになります。input-validation-error {border:2px solid #fff} 'のようになります。要素のスタイルをinput-validation-errorクラスで失うことはありません。 –