2012-04-04 6 views
2

検証に失敗した場合、htmlラベルにcssクラスを追加する簡単な方法は誰でも、モデルのからpublic IEnumerable(ValidationContextコンテキスト)の検証は、jQueryやコントローラでは無効になります。検証の失敗時に単一のmvcヘルパーメソッドにモデルを追加する方法

私は、私が失敗した入力の横に*印をつけ、そのラベルのテキストを太字と赤色にしたいというエラーメッセージを私に与えてくれました。

@Html.LabelFor(model => model.Name) 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.Name)<br/><br /> 
    </div> 
+0

@ Html.ErrorMessageFor(model => model.Name)メソッドを使ってビューにエラーメッセージを表示してみませんか?これをdivに入れると、そのdivを使ってスタイルを追加することもできます。 –

+0

私はこれを行うことができましたが、残念ながらプロジェクトではラベルのテキストを変更する必要がありますが、どのヘルパーメソッドに関係なく、まだこれを使用してもCSSの変更方法の質問には答えません。 – stuartdotnet

答えて

1

あなたはまだhttp://weblogs.asp.net/imranbaloch/archive/2010/07/03/asp-net-mvc-labelfor-helper-with-htmlattributes.aspx

このコードでHTML属性をサポートしていLabelForにHTMLヘルパー拡張を見て、解決策を見つけていない場合。このコードをテンプレートとして使用して、ニーズに合わせて変更することができます。 1つのオプションは、検証エラーが発生したかどうかを検出することです。数日前に私は似たようなものを書いた:

public static string IsInvalidFor<TModel, TValue>(
     this HtmlHelper<TModel> htmlHelper,    
     Expression<Func<TModel, TValue>> expression, 
     string cssErrorClass) 
    { 
     if (ValidationExtensions.ValidationMessageFor(htmlHelper, expression) != null) 
      return cssErrorClass; 
     else return ""; 
    } 
0

あなたはこの

  string name = //ur name property//; 
      oppdesc = "";    
      oppdesc += "<span class ="error"+ "\">" +  name+ "</span>"; 

を追加し、uはウルCSSで太字や赤のように、クラスのエラーを定義し、この場合には.csファイルモデルでそれをしたい場合。

+0

これは多くの理由で機能しません。あなたはこのコードをどこに置いていますか? Validateメソッドでは? – stuartdotnet

+0

検証メッセージが設定されているときに設定することができます – TRR

+0

それではoppdescではどうしますか?どのようにあなたのコントロールをスタイルにしますか? MVCでは、プロパティは実際にコントロールではないためです。 – stuartdotnet

関連する問題