それは可能ですが、ASP.NET MVC とはほとんど関係ありません。Web ページの見栄えを良くすることは、MVC (サーバー上にある) ではなく、CSS (クライアント上にある) の仕事です。
CSS は次のようになります。
input[type="email"] {
background: url('images/envelope.png') no-repeat center left 5px;
padding-left: 50px; /* depends on width of envelope image */
}
input[type="email"].input-validation-error {
background: url('images/envelope.png') no-repeat center left 5px, url('images/cross.png') no-repeat center right 5px;
}
そしてあなたのHTML:
<input type="email" />
要素を無効としてマークする必要があります。頭のてっぺんから、MVC4 に同梱されている jQuery Validation プラグインは、すぐに使用できる.input-validation-error
クラスを使用していると思います。これが機能している場合は、有効な状態に再度適用するのにそれほど苦労する必要はありません。
もう一つ。この例では、要素に複数の背景を使用していることに注意してください。これは CSS3 の機能であり、古いブラウザーはこれをサポートしていません。
*更新
ASP.NET MVC に固有のフィールドを生成する方法は次のとおりです。
@Html.TextBoxFor(model => model.Email, new { @class = "email" })
見栄えを良くするための CSS は次のとおりです。
input.email {
background: url('images/envelope.png') no-repeat center left 5px;
padding-left: 50px; /* depends on width of envelope image */
}
input.email.input-validation-error {
background: url('images/envelope.png') no-repeat center left 5px, url('images/cross.png') no-repeat center right 5px;
}