MVC3----模型绑定
模型绑定(用于获取表单或者URL提交的参数)
1,基本模型绑定(你可以直接在参数中用字符串,整型变量,实体或者是List<实体>的方式获取表单提交的参数)
例1:
publicViewResultDetails(intid){Albumalbum=db.Album.Find(id);returnView(album);}
匹配URL:
http://localhost/Home/Details/1
http://localhost/Home/Details?Id=1
匹配表单:
<input type="text" name="id" value="1" />
例2:
[HttpPost]publicActionResultCreate(Albumalbum){if(ModelState.IsValid){db.Album.Add(album);db.SaveChanges();returnRedirectToAction("Index");}ViewBag.GenreId=newSelectList(db.Genres,"GenreId","Name",album.GenreId);ViewBag.ArtistId=newSelectList(db.Artists,"ArtistId","Name",album.ArtistId);returnView(album);}
匹配表单:
<input type="text" name="id" value="1" />
<input type="text" name="name" value="tom" />
2,显示模型绑定(UpdateModel与TryUpdateModel都用于显示模型绑定)
UpdateModel:如果绑定期间出现错误,则会抛出异常
[HttpPost]publicActionResultEdit(){Albumalbum=newAlbum();try{UpdateModel(album);db.Entry(album).State=EntityState.Modified;db.SaveChanges();returnRedirectToAction("Index");}catch{ViewBag.GenreId=newSelectList(db.Genres,"GenreId","Name",album.GenreId);ViewBag.ArtistId=newSelectList(db.Artists,"ArtistId","Name",album.ArtistId);returnView(album);}}
TryUpdateModel:不会抛出异常,它会返回一个bool值,true为绑定成功,false为绑定失败
[HttpPost]publicActionResultEdit(){Albumalbum=newAlbum();if(TryUpdateModel(album)){db.Entry(album).State=EntityState.Modified;db.SaveChanges();returnRedirectToAction("Index");}ViewBag.GenreId=newSelectList(db.Genres,"GenreId","Name",album.GenreId);ViewBag.ArtistId=newSelectList(db.Artists,"ArtistId","Name",album.ArtistId);returnView(album);}
3,模型状态
[HttpPost]publicActionResultCreate(Albumalbum){if(ModelState.IsValid)//模型状态{db.Album.Add(album);db.SaveChanges();returnRedirectToAction("Index");}ViewBag.GenreId=newSelectList(db.Genres,"GenreId","Name",album.GenreId);ViewBag.ArtistId=newSelectList(db.Artists,"ArtistId","Name",album.ArtistId);returnView(album);}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。