using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace IAuthenticationFilterTest.Filters
{
public class LogOutputAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
log("OnActionExecuted", filterContext.RouteData);
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
log("OnActionExecuting", filterContext.RouteData);
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
log("OnResultExecuted", filterContext.RouteData);
}
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
log("OnResultExecuting", filterContext.RouteData);
}
private void log(string method, RouteData routeData)
{
var controller = routeData.Values["controller"];
var action = routeData.Values["action"];
string message = String.Format("{0}-{1}-{2}", method, controller, action);
Debug.WriteLine(message, "Action Filter Log");
}
}
}
記得將這個屬性加到你的Action上,使用Visual Studio開偵錯模式,輸出視窗就能看到結果
不過這個是適合開發中,馬上能看到記錄,供除錯用,線上環境就不適合用這個了.
程式碼是參考ASP.NET MVC5 網站開發美學書上的範例,再透過實作可行.