4

Visual Studio で既定の MVC4 プロジェクトを開始しました。

私のモデルのどこかにこのコードがあります

 public class LoginModel
 {
    [Required]
    [Display(Name ="Name")]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
  }

ローカライズを試したいので、このようなものに変更したい(別のクラス内では機能しますが、ここでは機能しません)(strings =ローカライズ用のresxファイル)

public class LoginModel
 {
    [Required]
    [Display(Name =strings.UserName)]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = strings.Password)]
    public string Password { get; set; }

    [Display(Name = strings.RememberMe)]
    public bool RememberMe { get; set; }
  }

エラーは定数式でなければならないということですが、そのようにすると、「プロパティインデックスにアクセサーがありません」のようなものが得られます

ここで何が欠けていますか?? 文字列値をくそったれに代入できないのはなぜですか? Java では、これはすべて非常に簡単です。あなたが私を助けてくれることを願っています。

4

2 に答える 2

13

リソースを使用する必要があります。属性では、不変の値のみを設定できます。

これを試して。

[Display(Name = "Remember me?", ResourceType = typeof(YourResourcesType))]
public bool RememberMe { get; set; }

そして 、DisplayAttribute とカスタム リソース プロバイダーを使用したこの ASP.NET MVC 3 ローカライズを見てください。

于 2012-06-05T10:16:32.560 に答える
-8

セッションとviewStateを使用する必要があると思いますが、

セッションを使用するにはhttp://msdn.microsoft.com/en-us/library/ms178581.aspxにアクセスしてください

ビューステートを使用するには、http://msdn.microsoft.com/en-us/library/ms972976.aspx にアクセスしてください

于 2012-06-05T08:49:55.070 に答える