当前位置:编程学习 > C#/ASP.NET >>

为什么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) --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
public ActionResult MyCreate(Movie from)


我不想单纯传  Movie 的对象就来  ,因为我的表单里面还有一些不是Movie的元素,  所以就传了FormCollection  进来  , 我要怎么修改啊??      --------------------编程问答-------------------- 用UpdateModel(newMovie) --------------------编程问答--------------------
引用 3 楼 caozhy 的回复:
用UpdateModel(newMovie)


大侠能否详细一点??UpdateModel不是用来更新数据库的吗??? --------------------编程问答--------------------
引用 4 楼 u012779901 的回复:
Quote: 引用 3 楼 caozhy 的回复:

用UpdateModel(newMovie)


大侠能否详细一点??UpdateModel不是用来更新数据库的吗???


UpdateModel将FormCollection更新到你指定的Model对象中,和数据库没有关系。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,