1

コントローラーのコンストラクターで、Cookie があるかどうかを確認していますが、System.NullReferenceException があります。何が問題なのですか?

public CartController()
    {
        if (Request.Cookies["cart"] != null)
        {
            //do something
        }

    }
4

2 に答える 2

0

コードをコンストラクターに配置するのではなく、アクション フィルターを使用すると、コード内での繰り返しを避けるのに役立つ場合があります。

から派生する属性をActionFilterAttributeコントローラーに追加します。

[MyActionFilter]
public CartController()
{
}

このフィルターは、すべてのアクションをインターセプトします。

 public class MyActionFilter : ActionFilterAttribute

 {
      public override void OnActionExecuting(ActionExecutingContext filterContext)
      {
          var request = filterContext.HttpContext.Request;
          // Do something with request....
      }

      public override void OnActionExecuted(ActionExecutedContext filterContext)
      {
          // Do anything else if you feel like it.
      }
 }
于 2013-07-22T10:08:21.127 に答える