2016-06-23 7 views
0

作業中のプロジェクトでブラウザのログインビューに移動しようとしたときにこのエラーが発生しました。 enter image description hereloginviewmodel.csのユーザー名検証

私はどのように私はこの問題を回避することができ

私AccountViewModelでusernameプロパティを持っていますか?誰も私に解決策を提案することはできますか?

私はこの

 [Required(ErrorMessageResourceType = typeof(InitialCreate1),ErrorMessageResourceName = "UserNameInvalid", ErrorMessage = null)] 
    [Display(Name = "UserName")] 
    public string UserName { get; set; } 

などの必要な属性を変更した後、私は

Server Error in '/' Application. 

この新しいエラーを持っているのどちらかErrorMessageStringまたはErrorMessageResourceNameは両方の設定ではなく、しなければなりません。

説明現在のWeb要求の実行中に、未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

例外の詳細:System.InvalidOperationException:ErrorMessageStringまたはErrorMessageResourceNameのいずれかを設定する必要がありますが、両方を設定する必要はありません。

ソースエラー:

ライン17:@ Html.LabelFor(M => m.UserName、新しい{@class = "COL-MD-2コントロールラベル"}) ライン18: ライン19 :@ Html.TextBoxFor(M => m.UserName、新しい{@class = "フォームコントロール"}) ライン20:@ Html.ValidationMessageFor(M => m.UserName) ライン21:

何私はこれについて行うことができますか?私を助けてください?

答えて

2

最初のエラーメッセージは、リソース名に加えてリソースタイプを指定する必要があるというメッセージです。たとえば、Validation.resxというリソースがある場合、属性にリソースタイプを宣言する必要があります。

[Required(
    ErrorMessageResourceName = "UserNameRequired", 
    ErrorMessageResourceType = typeof(Validation))] 
[Display(Name = "UserName")] 
public string UserName { get; set; } 

リソースファイルは次のようになります:2番目のエラーメッセージは、あなたがErrorMessageまたはErrorMessageResourceNameではなく、両方を宣言しなければならないと言っている

enter image description here

。エラーを修正するには、属性宣言からErrorMessage = nullを削除する必要があります。

実際にリソースファイルがない場合は、属性のエラーメッセージを直接宣言する方が簡単です。

[Display(Name = "UserName")] 
[Required(ErrorMessage = "Please enter your username.")] 
public string UserName { get; set; } 
+0

申し訳ありませんが、私のリソースはどこにありますか? –

+0

リソースファイルをお持ちの場合は、ソリューションのどこかに '.resx'ファイルである必要があります。存在しない場合は作成する必要があります。名前と値のペアの表になります。詳細は私の更新された答えを見てください。 –

+0

本当にありがとうございました。本当にありがとうございました。 –

関連する問題