2013-07-21 2 views
0

MVC를 처음 사용합니다. 나는 뷰 모델을 사용하여 뷰에서 생년월일 값을 컨트롤러로 가져 오는 문제에 직면하고있다. 양식 값을 가져오고 다른 모든 텍스트 상자 값을 가져 오는 뷰 모델을 사용하고 있습니다. 하지만 난 항상 날짜에 null 값을 얻는다.보기 모델을 사용하여 컨트롤러에서 날짜의 Null 값을 가져 오는 중

내보기 모델은 다음과 같습니다. 양식을 게시 한 후 호출 할

public class Student 
    { 
     [Required(ErrorMessage = "Date of birth is required")] 
     [DataType(DataType.Date), DisplayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:dd/MM/yy}",ConvertEmptyStringToNull=false)] 
     public DateTime? DateOfBirth { get; set; } 
    } 

내 컨트롤러는 다음과 같습니다

[HttpPost] 
    public ActionResult StudentPersonalReg(Student stud) 
    { 
     DateTime? dateofbirth = stud.DateOfBirth;  
     return RedirectToAction("Registration"); 
    } 

내보기

@model eEducation.Models.UserModel.Student 

    @Html.TextBoxFor(x => x.DateOfBirth) 
    @Html.ValidationMessageFor(x => x.DateOfBirth) 

문제가 항상 컨트롤러의 날짜에 대한 null 값을 얻을입니다. 컨트롤러에서 뷰를 호출 할 때 ViewModel에 DateTime.Now를 설정해 보았습니다.

강력한 형식의보기를 사용하고 있지 않습니다.

이 점에 대해 도와주세요. 나는 컨트롤러 방법으로 볼 수 내 모델을 통과하고

public ViewResult Registration() 
    { 
     var db = new eEducationEntities(); 
     List<CountryMaster> queryCountry = db.CountryMasters.ToList();   

     List<StateMaster> queryState = db.StateMasters.ToList(); 


     Student stds = new Student(); 

     stds.Countries = queryCountry; 
     stds.States = queryState; 
     stds.DateOfBirth = DateTime.Now; 

     return View("~/Views/UserSection/StudentRegistration.cshtml", stds); 
    } 
+1

실제로 모델을보기에 전달합니까? 내가보기에는 리디렉션 (보기를로드하는 것과 같지 않음)이 있습니다. –

+0

예, 다른 컨트롤러 메서드에서 수행 할 뷰를 내 모델에 전달 중입니다. –

+1

문제의 원인이 있습니다. 그것은 문화 때문이었습니다. 기본 문화는 en-US입니다. 내가 원하는 날짜는 dd/MM/yyyy. 그러나 여전히 해결책을 찾을 수 없습니다. 마스터 레이아웃에서 Culture Info를 설정할 수 있다면 솔루션을 이끌 것이라고 생각합니다. –

답변

0

당신은 당신의보기 모델에 Html.BeginForm()를 사용해야합니다. 다시 게시하는 컨트롤러 작업을 지정할 수도 있습니다.

@model eEducation.Models.UserModel.Student 

@using (Html.BeginForm("StudentPersonalReg", "ControllerName")) { 
    @Html.ValidationSummary(true) 


    @Html.TextBoxFor(x => x.DateOfBirth) 
    @Html.ValidationMessageFor(x => x.DateOfBirth) 

<p> 
      <input type="submit" value="Submit" /> 
     </p> 
} 
+0

이미 사용 중입니다. 만약 내가 양식을 사용하지 않았다면 나는 이미 언급 한 것처럼 생년월일을 제외한 다른 가치를 얻습니다. –

+0

죄송 합니다만, 코드를 게시하지 않으면 어떻게 사용하고 있는지 알 수 있습니까? 너무 많은 사람들이 그 실수를 저질렀습니다. 나는 반대로 증거가 없다면 당신이하지 못했다고 생각할 수 없습니다. – doreye01

+0

오! 아니. 당신은 사과 할 필요가 없습니다. 이 문제를 해결하십시오. 나는 너에게 감사 할 것이다. –

관련 문제