[英]ExecuteCore() vs OnActionExecuting(ActionExecutingContext filterContext)?
[英]AbstractValidator Vs OnActionExecuting
我在OnActionExecuting
設置文化語言。 但是我的驗證方法(FluentValidation)甚至在執行OnActionExecuting
之前就已執行。 但是在OnActionExecuting
之前,我需要AbstractValidator
需要的文化語言。
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
嗎?
我建議您使用Application_BeginRequest事件,並將您的區域性邏輯放在此處。 它在集成管道級別上執行,遠遠早於將事件委托給MVC來處理請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.