首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AbstractValidator Vs OnActionExecuting

AbstractValidator Vs OnActionExecuting
EN

Stack Overflow用户
提问于 2014-06-03 03:22:03
回答 1查看 110关注 0票数 0

我在OnActionExecuting中设置了文化语言。但是我的验证方法(FluentValidation)甚至在OnActionExecuting执行之前就已经执行了。但我需要在OnActionExecuting之前,在AbstractValidator中需要的文化语言。

代码语言:javascript
复制
internal class MeetingAbstractValidator : AbstractValidator<MeetingAbstract>
{
    public MeetingAbstractValidator()
    {
        RuleFor(x => x.SPEPaperNumberText)
          .NotEmpty()
          .When(IfValueIsYes)
          .WithMessage(i18n_Models_Abstract.RequiredField);
     }
 }  

private bool IfValueIsYes(MeetingAbstract model)
  {
      return model.HasMaterialPublishedBySPEText.Equals(i18n_Models_Abstract.AbstractYes);
   }


public class LanguageFilterAttribute : ActionFilterAttribute
{
  public override void OnActionExecuting(ActionExecutingContext filterContext)
  {
      var request = filterContext.HttpContext.Request;
      string cultureName = null;
      var cultureCookie = request.Cookies["_culture"];
      if (request.UserLanguages != null)
           cultureName = cultureCookie != null ? cultureCookie.Value : 
                    request.UserLanguages[0];
           cultureName = CultureHelper.GetImplementedCulture(cultureName); // This is safe
           Thread.CurrentThread.CurrentCulture = new 
                               System.Globalization.CultureInfo(cultureName);
          Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

                base.OnActionExecuting(filterContext);
     }
}

如何处理这个问题?我可以覆盖OnActionExecuting吗?

EN

回答 1

Stack Overflow用户

发布于 2014-06-03 03:48:59

我建议你使用Application_BeginRequest事件,并把你的文化逻辑放在那里。这在集成管道级别上执行,在MVC被事件委托来处理请求之前很久。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24001731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档