0

特定のセッション変数が設定されているかどうかを確認するカスタムコントローラー属性をasp.netに作成する必要があります。これは認証用ではありません。varが設定されていない場合は、別のビューにリダイレクトする必要があります。

public class CheckPatientSetAttribute : Attribute
{
    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        throw new NotImplementedException();
    }

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Session["Patient"] == null)
        {
            filterContext.HttpContext.Response.Redirect("/");
        }
    }
}

このシナリオでは属性を使用する必要がありますか?

4

1 に答える 1

1

このシナリオで属性を使用するのはやり過ぎだと思います。それは機能しますが、誤解しないでください。これは、モデルの特定のプロパティの装飾や属性ではなく、ビジネスロジックレイヤーに属するビジネスロジックの一部です。この部分が数回繰り返される場合は、ユーティリティと他の人が理解しやすいことに基づいて、別のメソッドまたはクラスに外部化します。Attribute理解しやすいとは思いませんが、実際には有用というより誤解を招きます。私見では。

いつものように、あなたの質問に対する正しい答えはありません。すべては、ユーティリティ、使いやすさ、および後で理解しやすい (メンテナンス) に基づいています。

于 2012-09-21T20:10:39.737 に答える