我是MVC的初学者,所以我为新问题道歉:
如果用户没有正确填写表单,我想保留我的模型数据。
当我返回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);
}
答案 0 :(得分:-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; }
}
我不熟悉您使用的语法,但这个是我所知道的最标准的语言,并且它正在发挥作用。