에서 모델 결합 현재 응용 프로그램 사용자). 내가 디버깅 및 스텝을 할 때 내 코드는 Thread.Culture가 올바르게 설정되고 Thread.Culture 나는이 ModelBinder를이 제대로 준수 할 문화 고유의 값을 허용하려면 MVC2
나는 그러나 나의 모델이 잘못된 값을 받고 계속, 그래서protected void Application_Start() {
ModelBinders.Binders.DefaultBinder = new CultureAwareModelBinder();
}
처럼 설정합니다. 내 웹 브라우저 중 하나를 필드에 "2013년 10월 6일"를 지정하고 명중 제출하고 문화는 "-GB EN"을 (때와 때
public class EventModel {
public DateTime Start { get; set; }
public DateTime End { get; set; }
}
:
이
내 모델입니다 스레드의 DateTimeFormat이 실제로dd/MM/yyyy
으로 설정되어 있는지 확인했습니다. MVC는 2013 년 6 월 10 일이 아닌 2013 년 10 월 6 일부터 MVC를받습니다.
왜 이런 일이 발생하는지 잘 모릅니다. 실제 모델 바인딩으로 스레드 문화를 존중하지 않는 이유는 무엇입니까?
문화권은 사용자별로 다르다. ASP.NET은 현재 사용자에 대한 정보를 가지기 전에'Application_BeginRequest'를 사용하기 때문에 대신'PostAcquireRequestState'에 스레드 문화권을 설정하면 제대로 작동하는 것 같습니다. ActionFilter 나 바인더가이 문제를 해결할 수 없다는 것은 실망 스럽습니다. – Dai