다른 언어로 웹 사이트를 만들고 싶습니다. 나는 이미 내가 ActionFilter를 만들 수 있다는 것을 읽을 수 있지만 나는 litte 문제가 :
내가 영어 및 독일어 숫자 형식 (123,456,789.1
대 123.456.789,1
)ModelBinder를 사용하기 전에 문화를 변경하십시오.
public class DecimalModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
string key = bindingContext.ModelName;
var v = ((string[])bindingContext.ValueProvider.GetValue(key).RawValue)[0];
float outPut;
if (float.TryParse(v, NumberStyles.Number, System.Globalization.CultureInfo.CurrentCulture, out outPut))
return outPut;
return base.BindModel(controllerContext, bindingContext);
}
}
이를 작동하기 위해 사용자 정의 ModelBinder를을 만들어야했습니다 ModelBinder는 현재 문화권을 사용하여 어떤 형식이 사용되는지 결정합니다. 하지만 불행히도 ModelFinder는 ActionFilter가 문화를 바꿀 수 있기 전에 사용됩니다.
전에 ModelBinder가 활성화되기 전에 문화를 어떻게 바꿀 수 있습니까?
을 설정할 수 얻을, 당신에게 많이 감사합니다! 하지만 한 가지 질문이 있습니다. 요청 당 코드가 5 번 실행되는 이유는 무엇입니까? – Christopher
나는 그 행동을 얻지 못하고있다. (System.Web.HttpApplication) (보낸 사람)에게 시계를 추가 할 수 있습니까? Request.RawUrl 및 요청이 동일한 지 확인하십시오? – barry
@Christopher 코드는 요청 당 한 번 (따라서 BeginRequest라는 이름으로) 실행되므로 페이지에 대한 요청이 하나 있고 스타일 시트, 이미지 또는 JavaScript 파일에 대한 요청이 4 개 더 있습니다. Request.Url을 확인하십시오. 약간의 불빛을 비춰 줄 수 있습니다. –