为什么ModelState.IsValid不起效了?
我的model是Moive
public class Movie
{
public int Id { get; set; }
[Required(ErrorMessage="电影题目必填")]
public string Title { get; set; }
[Required(ErrorMessage="放映日期必填")]
public DateTime ReleaseDate { get; set; }
[StringLength(50,ErrorMessage="不能超过50个字")]
public string Genre { get; set; }
[Range(10,100,ErrorMessage="超过100块太贵了")]
public decimal Price { get; set; }
}//end class
controller里面写的action是
[HttpPost]
public ActionResult MyCreate(FormCollection from)
{
if (ModelState.IsValid)
{
Movie newMovie = new Movie();
newMovie.Title = from["txtName"];
newMovie.Price = Convert.ToDecimal(from["txtPrice"]);
newMovie.ReleaseDate = Convert.ToDateTime(from["txtDate"]);
movieManage.AddMovie(newMovie);
}
//return RedirectToAction("Index", "Movie");
return View();
}
为什么测试的时候不填 title ,但是 ModelState.IsValid却等于true??
另外,我没有用强类型的视图,如果我用ado.net实体数据模型和强类型的视图来做,却能正常检验!
我要怎么检验Movie的属性啊??
--------------------编程问答-------------------- public ActionResult MyCreate(Movie from) --------------------编程问答--------------------
我不想单纯传 Movie 的对象就来 ,因为我的表单里面还有一些不是Movie的元素, 所以就传了FormCollection 进来 , 我要怎么修改啊?? --------------------编程问答-------------------- 用UpdateModel(newMovie) --------------------编程问答--------------------
大侠能否详细一点??UpdateModel不是用来更新数据库的吗??? --------------------编程问答--------------------
UpdateModel将FormCollection更新到你指定的Model对象中,和数据库没有关系。
补充:.NET技术 , ASP.NET