如何保存模型数据!ModelState.IsValid?

问题描述 投票:0回答:1

我是MVC的初学者,所以我为新问题道歉:

如果用户没有正确填写表单,我想保留我的模型数据。

POST code in controller

当我返回res时,有没有办法保持View(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);
    }
c# asp.net-mvc post modelstate
1个回答
-1
投票

我已将您的ViewModel类更改为:

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; }

现在它正在按你的意愿工作。另外,如果你想使用私有字段并实现set和set方法,那么正确的是:

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

我不熟悉你使用的语法,但是这个是我所知道的最标准的,并且它正在工作。

© www.soinside.com 2019 - 2024. All rights reserved.