2012-12-20 3 views
1

이 코드가 내부 날짜 시간을 확인하는 방법 :TextBoxFor ASP.NET MVC

@Html.TextBoxFor(m => Model.MyDateTime) 

MyDateTime를 - DateTime 개체입니다. 텍스트 상자에 정확한 날짜와 시간이 표시됩니다. 09/10/2010 05:19:56 PM 하지만 제출 버튼을 클릭하면 잘못된 값임을 알립니다. 유효성 검사를 위해 jquery.validate.unobtrusive.js 파일을 사용합니다.

+0

'MyDateTime' 속성에 대한 유효성 검사를 설정하는 방법은 무엇입니까? – HackedByChinese

+0

나는 [과거에 같은 것을 물었다] (http://stackoverflow.com/questions/12930640/in-asp-net-mvc-4-how-to-validate-that-a-datetime-value- is-entered-the-correc). 거기에서 받아 들여진 대답을보십시오. – aknuds1

답변

2

내 의견에서 지적한 해결책의 요지는 RegularExpressionAttribute으로 값의 유효성을 쉽게 확인할 수있는 DateTime 형식 대신 문자열 표현이 포함 된 특수 모델을 사용할 수 있다는 것입니다. 서버에서이 모델을 받으면 (클라이언트에서 게시 됨) 해당 모델을 해당 데이터베이스 모델로 변환하기 만하면됩니다.

public class ViewModel 
{ 
    [Required] 
    [RegularExpression("\d{2}-\d{2}-\d{4}\s\d{2}:\d{2}:\d{2}")] 
    public string MyDateTime { get; set; } 

    public Model ToPoco() 
    { 
     return new Model { 
      MyDateTime = DateTime.Parse(this.MyDateTime, "MM-dd-yyyy H:mm:ss") 
     }; 
    } 
} 

public class Model 
{ 
    DateTime MyDateTime { get; set; } 
} 
0

dataannotaion을 유효성 검증 모델 필드에 올바르게 사용할 수 있습니다. 그러한 주석을 사용하면 주석 패턴에 날짜 패턴을 수동으로 제공 할 수 있습니다. 그리고 그 경우에는 완벽하게 기본 mvc 유효성 검사와 함께 작동합니다.

1

데이터 주석을 사용할 수 있습니다.