2010-05-28 13 views
1

날짜 개체를 전달할 클라이언트 쪽 날짜 변수가 있고 서버 쪽에서 내 컨트롤러 날짜 변수를 전달하려면. 정상 필드로 전달했으며 날짜는 01-01-0001 12:00:00 AM입니다.JavaScript에서 asp.net mvc 컨트롤러

올바른 형식으로 날짜 필드를 변환하는 데 도움이됩니다.

답변

1

ASP.NET MVC는 DateTime 값이 Thread.CurrentLanguage 형식이어야합니다. 어떤 언어를 사용하고 있는지 확인하십시오.

사용자가 TextBox에 Date를 입력 할 수 있고 언어의 형식을 입력 할 수 있기 때문에 비슷합니다.

피터 (Pieter)는 이렇게 말합니다. 쉬운 방법은이 경우 문자열을 사용하는 것입니다.

또 다른 방법은 Global.asax에에

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; 
} 

을 사용하는 것입니다.

당신은 ModelBinding의 앞으로 일어날 후 필터에 사용자의 언어로 다시 전환 할 수 있습니다

public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
      string language = //find a way to get the language - I have it in the route 
      Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(language); 
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language); 
     base.OnActionExecuting(filterContext) 
    } 

이 방법은 약간의 위험을 가지고 있지만, modelBinding가 InvariantCulture를 사용하는 경우 나 상황을 많이에서 쉽게 찾을 (생각 경로의 십진수 값, 경로의 날짜 시간 ...)

0

날짜의 문자열 표현을 ASP.NET MVC 작업에 전달하고 DateTime.TryParse(..)을 사용하여 구문 분석하는 것이 가장 쉬운 방법이라고 생각합니다.

[HttpPost] 
public ActionResult(string dateTimeString) 
{ 
    DateTime tempDateTime; 
    if(DateTime.TryParse(dateTimeString, out tempDateTime)) 
    { 
     //Handle 
    } 
} 
+0

실제로 datetime은 내 모델의 파일이며 기본 modelbinder를 사용하고 있습니다. 클라이언트로부터 올바른 형식으로 날짜를 전달하는 방법이 있습니까? – Elangovan

+0

오, Check Malcolm Frexner의 답변 :) –