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);
}
실제로 모델을보기에 전달합니까? 내가보기에는 리디렉션 (보기를로드하는 것과 같지 않음)이 있습니다. –
예, 다른 컨트롤러 메서드에서 수행 할 뷰를 내 모델에 전달 중입니다. –
문제의 원인이 있습니다. 그것은 문화 때문이었습니다. 기본 문화는 en-US입니다. 내가 원하는 날짜는 dd/MM/yyyy. 그러나 여전히 해결책을 찾을 수 없습니다. 마스터 레이아웃에서 Culture Info를 설정할 수 있다면 솔루션을 이끌 것이라고 생각합니다. –