我在 VS 2013 NET4.5 上有工作代码。更新 NuGet 包(VS 2013,NET 4.5.1)后,出现此错误
System.Web.Mvc.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理
附加信息:给定的过滤器实例必须实现以下一个或多个过滤器接口:IAuthorizationFilter、IActionFilter、IResultFilter、IExceptionFilter。
我确定我实现了IActionFilter接口,那么我怎样才能得到这样的错误,我该如何解决呢?
供参考:
public class WWWActionFilterAttribute : System.Web.Mvc.ActionFilterAttribute, System.Web.Mvc.IActionFilter
{
public override void OnActionExecuting(System.Web.Mvc.ActionExecutingContext filterContext)
{
System.Uri Address = filterContext.HttpContext.Request.Url;
string[] domains = Address.Host.Split('.');
if (domains.Length == 2)
{
System.UriBuilder AddressBuilder = new System.UriBuilder(Address);
AddressBuilder.Host = string.Format("www.{0}", AddressBuilder.Host);
filterContext.HttpContext.Response.Redirect(AddressBuilder.Uri.AbsoluteUri);
}
else
{
base.OnActionExecuting(filterContext);
}
}
}
配置
public class FilterConfig
{
public static void RegisterGlobalFilters(System.Web.Mvc.GlobalFilterCollection filters)
{
filters.Add(new System.Web.Mvc.HandleErrorAttribute());
filters.Add(new TIKSN.HomeWebsite.Generalization.WWWActionFilterAttribute());
filters.Add(new TIKSN.HomeWebsite.Globalization.LanguageActionFilterAttribute());
}
}