2017-12-30 27 views
0

저는 MVC 초보자입니다. 그래서 newb 질문에 사과드립니다 :모델 데이터를 유지하는 방법! ModelState.IsValid?

사용자가 양식을 올바르게 채우지 않으면 모델 데이터를 유지하고 싶습니다.

POST code in controller

내가 View(res)를 반환 할 때 res에서 데이터를 유지하는 방법이 있나요? 당신의 도움에 대한

감사

편집 :

NewReservationVM 클래스 :

public class NewReservationVM 
{ 
    int idRoom; 
    string firstName; 
    string lastName; 
    DateTime checkin; 
    DateTime checkout; 
    decimal price; 

    public int IdRoom { get => idRoom; set => idRoom = value; } 
    [Required(ErrorMessage = "Veuillez saisir votre prénom.")] 
    public string FirstName { get => firstName; set => firstName = value; } 
    [Required(ErrorMessage = "Veuillez saisir votre nom.")] 
    public string LastName { get => lastName; set => lastName = value; } 
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")] 
    public DateTime Checkin { get => checkin; set => checkin = value; } 
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")] 
    public DateTime Checkout { get => checkout; set => checkout = value; } 
    public decimal Price { get => price; set => price = value; } 
} 

컨트롤러 :

[HttpPost] 
    public ActionResult Create(NewReservationVM res) 
    { 
     if(ModelState.IsValid) 
      return RedirectToAction("ResOk", res); 

     return View(res); 
    } 
+0

보기 모델 "NewReservationVM"을 완전히 쓸 수 있습니까? –

+6

res 인스턴스의 값을 잃어 버려서는 안됩니다 ... 더 많은 코드를 게시하십시오. 아마도 문제는 그것이 생각하는 바가 아닙니다. –

+0

제안 : 해당 컨트롤러 메소드의 첫 번째 줄에 중단 점을 놓고 "quickwatch"를 사용하여 "res"변수에서받은 값을 검사하십시오. 값이있는 경우 "return View (res);"를 호출하면 뷰에 모든 수신 값을 제공하고 있습니다 (모델이 유효한지 또는 유효하지 않은지 여부는 중요하지 않음). –

답변

-1

나는이에 뷰 모델 클래스를 변경했습니다 :

public int IdRoom { get; set; } 
[Required(ErrorMessage = "Veuillez saisir votre prénom.")] 
public string FirstName { get; set; } 
[Required(ErrorMessage = "Veuillez saisir votre nom.")] 
public string LastName { get; set; } 
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")] 
public DateTime Checkin { get; set; } 
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")] 
public DateTime Checkout { get; set; } 
public decimal Price { get; set; } 

이제 원하는대로 작동합니다.

private int idRoom; 
public int IdRoom 
{ 
    get { return idRoom; } 
    set { idRoom = value; } 
} 

난 당신이 사용했던 구문에 익숙하지 않다, 그러나 이것은 가장 표준 : 당신이 개인 필드를 사용하여 설정 구현 방법을 설정하려는 경우 또한, 적절한는 같다 내가 아는 한 그것이 효과가있다.

관련 문제