自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。

2010年11月10日水曜日

asp.net mvc2 controller attributeサンプル

asp.net mvc2フレームワークのコントローラー属性を定義するサンプルです。

ShowMessageAttribute.cs
namespace MvcApplicationEmpty.Attributes
{
    public class ShowMessageAttribute : ActionFilterAttribute
    {
        public string Message { get; set; }

        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //base.OnActionExecuting(filterContext);
            filterContext.HttpContext.Response.Write("[OnActionExecuting " + Message + "]");
        }
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            //base.OnActionExecuted(filterContext);
            filterContext.HttpContext.Response.Write("[OnActionExecuted " + Message + "]");
        }
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            //base.OnResultExecuting(filterContext);
            filterContext.HttpContext.Response.Write("[OnResultExecuting " + Message + "]");
        }
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            //base.OnResultExecuted(filterContext);
            filterContext.HttpContext.Response.Write("[OnResultExecuted " + Message + "]");
        }
    }
}

XXXXController.cs
...
[ShowMessage(Message="Koma")]
public ViewResult Default()
{
    ViewData["greeting"] = "from HomeController.Default";
    return View();
}
...

出力結果:
[OnActionExecuting Koma][OnActionExecuted Koma][OnResultExecuting Koma]
Home.Default from HomeController.Default
[OnResultExecuted Koma]

0 件のコメント:

コメントを投稿

ホームページ