ActionFilterAttribute做切面编程的Url的格式化例子

/// <summary>

/// 格式化Url过滤器

/// </summary>

public class UrlFormatFilter : System.Web.Mvc.ActionFilterAttribute

{

/// <summary>

/// 在Action执行前执行

/// </summary>

/// <param name="filterContext"></param>

public override void OnActionExecuting(System.Web.Mvc.ActionExecutingContext filterContext)

{

string url = filterContext.HttpContext.Request.Url.OriginalString;

if (System.Text.RegularExpressions.Regex.IsMatch(url, "[A-Z]"))

{

url = url.ToLower();

filterContext.HttpContext.Response.StatusCode = 301;

filterContext.HttpContext.Response.Redirect(url, true); 

}

}

}

/// <summary>
/// SEO始发城市Action
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
[UrlFormatFilter]
[NoCacheFilter]
public ActionResult TejiaCity(string city)
{
city = city ?? string.Empty;
IBaseInfoSearch baseInfoService = ServiceFactory.BaseInfoSearch();
AirCityInfo cityInfo = baseInfoService.GetAirCityByName(city);
CityLowPriceViewModelBuilder builder = new CityLowPriceViewModelBuilder(cityInfo);
CityLowPriceViewModel model = builder.Build(this.ControllerContext);

// 初始化页面头
InitTejiaCityPageInfo(cityInfo);
InitlizeRegisterResource();
return View("TejiaCity", model);
}

  

  

你可能感兴趣的:(attribute)