2016-05-09 10 views
0

ビュー内のフィールドに特定のエラーメッセージを追加することはできますか? 現在、私は、フィールドが空であるかどうかをチェックするためのモデル検証を行っており(ValidationMessageFor <>)、特定のエラーの検証サマリを使用しています。 私は、サマリーのために作成された特定のエラーメッセージがValidationMessageFor <を置き換えることができるかどうかです。特定のエラーメッセージをmvcのビューに追加する

モデル:

[Required] 
public string SchoolCode { get; set; } 

ビュー:

@Html.ValidationSummary("", new { @class = "text-danger" }) 
@Html.EditorFor(m => m.SchoolCode, new { htmlAttributes = new { @class = "form-control", @placeholder = "School Code" } }) 

@Html.ValidationMessageFor(model => model.SchoolCode, "", new { @class = "text-danger" }) 

コントローラー:

var schoolExists = RepositoryHelper.GetSchoolByCode(model.SchoolCode); 
if (schoolExists == null) 
{ 
    ModelState.AddModelError(string.Empty, @"No school exists with this code"); 
    return View(model); 
} 
if (ModelState.IsValid) 
{ 
    //do other stuff 
} 

モデル状態が有効でないのであれば、それはモデル誤差を返しますが、間違っている場合コードに入力すると、「このコードのある学校はありません」が検証の要約に追加されます。学校コードモデルのエラーを学校コードの要約エラーに置き換えることはできますか?

+0

将来的には、読みやすくするためにコードを書式化してください。 –

答えて

3

あなたははい、エラーメッセージを無効にすることが可能である@Html.ValidationMessageFor(m => m.SchoolCode, ... })

+0

そのような簡単!!!!! SOが私を許可するとき、答えとして受け入れます。 ありがとう – scottdavidwalker

0

で識別されるプレースホルダに表示されるようにAddModelError()方法

ModelState.AddModelError("SchoolCode", "No school exists with this code"); 

にプロパティ名を指定する必要があります。あなたがする必要があるのは、ModelState.AddModelErrorメソッド呼び出しの項目を参照し、エラーメッセージテキストを指定することだけです。

次のエラーメッセージを無効にすることができます:

  • エラーメッセージがあなたのテキストボックスのために

生成HTML出力を指定

  • エラーメッセージが指定されていない場合は、デフォルトのエラー・メッセージ

    <input 
        class="input-validation-error form-control text-box single-line" 
        data-val="true" 
        data-val-required="Source code is required" 
        id="SchoolCode" 
        name="SchoolCode" 
        placeholder="School Code" 
        type="text" 
        value="" /> 
    

    idname propetiesの値に注意することが重要です。それらはSchoolCodeに設定されています。エラーメッセージを無効にする必要がある場合は、参照する/使用しているHTML要素を知るために値SchoolCodeを使用する必要があります。

    ですから、次のように見えるようにコードを変更する必要があるいくつかの他の基準に基づいてカスタムエラーメッセージを追加:

    if (schoolExists == null) 
    { 
        ModelState.AddModelError("SchoolCode", "No school exists with this code"); 
    
        return View(model); 
    } 
    

    私はこのことができます願っています。

  • 関連する問題