2011-12-22 6 views
1

私は現在ValidationMessageForを使用して、asp.net MVC3フォームのエラーを見つけて表示しています。これをクライアント側のレベルで提供するために、JQueryの控えめな検証も使用しています。検証メッセージの初期テキストを設定する

これらの方法は素晴らしいですが、ユーザーがフォームフィールドにあるときに最初の「ヒント」を表示するオプションは、Twitter's sign up formと同じように欠けているようです。明確にするために、私はこれを検証メッセージと同じ場所に表示したいと思います。

この機能が利用可能かどうかは誰にでも教えてください。そうでない場合は、どのように実装するのですか?ただ、

上記の私のコメントに私は、これはちょうどあなたがそのための表示属性に記述プロパティを設定内容が表示さ

public static MvcHtmlString HintFor<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression) 
{ 
    dynamic attribute = ModelMetadata.FromLambdaExpression(expression, self.ViewData); 
    return MvcHtmlString.Create(attribute.Description); 
} 

「HintFor」のhtml拡張子を作成することによりだった実装方法を工夫する

+1

を取ることができますこの問題を解決する必要があります: http://stackoverflow.com/questions/5824124/html5-placeholders-with-net-mvc-3-razor-editorfor-extension – anthonyvscode

+0

ありがとう@anthonyvscode。しかし、これはテキストボックス内のプレースホルダとして表示されると考えるのは間違っていますか? ValidationMessageの表示場所を表示するためのヒントを探しています。 – Jonathan

答えて

2

示すように、その後、私のフロントエンドで、私は、各フォームのステップをフォーマットし

[Display(Name = "Application Title", Description = "Description goes in here")] 
public string Title { get; set; } 

のviewmodelプロパティは、(余分なクラスは、私は、UNI-Fを使用していているので、エラーメッセージが表示されたときにORMライブラリが

 <div class="question"> 
      @Html.LabelFor(m => m.Title, new { @class = "label" }) 
      <div class="formHint"> 
       @Html.HintFor(m => m.Title) 
      </div> 
      <div class="response"> 
       @Html.TextBoxFor(m => m.Title, new { @class = "textInput", autocomplete = "off" }) 
      </div> 
      <div class="sidetip"> 
       @Html.ValidationMessageFor(m => m.Title, null, new { @class = "invalid" }) 
      </div> 
     </div> 

その後、私は何も表示しないために「formhint」クラスを設定少しCSSを使用して)私のフォームをフォーマットする

.validation-summary-valid, .field-validation-valid 
{ 
    display: none; 
} 

.input-validation-error + .formHint 
{ 
    display: none !important; 
} 

ホープこれは

関連する問題