2

私のコントローラークラスの中には、User.Identity.Nameをパラメーターとして使用してフェッチされたログに記録されたユーザーを返すプライベートメソッドがあります。これはすべて問題ありません。

private static Account GetLoggedUser()
{ 
   AccountService accService = new AccountService();
   Account userAccount = accService.GetAccountByUsername(User.Identity.Name);
   return userAccount;
}

public ActionResult Edit()
{
   var userAccount = GetLoggedUser();
...
}

問題は、このエラーがオンラインで発生していることですUser.Identity.Name

非静的フィールド、メソッド、またはプロパティ'System.Web.Mvc.Controller.User.get'にはオブジェクト参照が必要です

コンパイル時にエラーが表示されます。

4

3 に答える 3

4

同じクラスにあるように見える静的メソッド内から非静的オブジェクト/プロパティを呼び出しています。使用する前に、クラスのインスタンスが必要です。または、メソッドを非静的に変更します。

于 2013-02-16T20:35:14.800 に答える
3

静的メソッドでコントローラーのプロパティを取得しています...

メソッドで削除staticしますGetLoggedUser()

から:

private static Account GetLoggedUser()
{
    // your code
}

に:

private Account GetLoggedUser()
{
    // your code
}
于 2013-02-16T20:38:13.237 に答える
2

静的メソッドで基本クラスのインスタンスメンバーにアクセスすることはできません。

于 2013-02-16T20:36:07.273 に答える