ASP.NET MVC3学习--视图和模型(5)
2013-01-29 14:57
281 查看
编辑专辑
创建编辑专辑的资源
在
高亮的代码是为了构建从数据库中得到流派和艺术家列表,将这些列表存在ViewBag中以便填充DropDownList辅助方法检索
SelectList类用于代表构建下拉表需要的数据,该构造函数第一个参数指定了要放在列表中的项,第二个参数是一个属性名,
该属性包含当用户选择一个指定的项时使用的值,第三个参数是每一项要显示的文本(“PoP”)最后,第四个参数包含了最初
选定的项的值
响应编辑时的POST请求
该操作有一个Album模型对象参数,并将该参数对象保存到数据库中
1、编辑happy path
Happy path就是当模型处于有效的状态并且可以将对象保存到数据库时执行的代码路径,操作通过ModelState.IsValid属
性来检查模型对象的有效性,如果模型处于有效状态,则:
db.Entry(album).state=EntityState.Modified;,该代码告知该信息已存在,这时执行对其进行更新即可.
2、编辑sad path
Sad path 当模型无效时操作采用的路径,在sad path中,控制器操作需要重新创建Edit视图,以使用户改正自身产生的错误.
模型绑定
DefaultModelBinder
当操作带有参数时,MVC运行环境会使用一个模型绑定器来构建这个参数,默认模型绑定器为DefaultModelBinder,例如在
Album对象情 形中,默认的绑定器检查Album类,并查找能用于绑定的所有Album属性.当模型绑定器看到Album有Title属性
时,它就在请求中查找名为 “Title”的参数,模型绑定器使用值提供器的组件请求在不同区域中查找参数,可以查看路由数
据、查询字符串、表单集合等
显示模型绑定
当操作中有参数时,模型绑定器会隐式的工作.可以使用控制器中的UpdateModel和TryUpdateModel方法显示的调用模型
绑定,如果在模 型绑定期间出现错误或者模型无效则UpdateModel则会抛出异常,但是使用TryUpdateModel方法则不会抛
出异常,该方法会返回一个布尔 值,true表示模型绑定成功,false表示失败.模型绑定会产生模型状态,模型绑定器移近模型中
的每一个值在模型状态中都会有一条相应的记录,绑定后 可以随时查看模型状态以检查模型绑定是否成功.
创建编辑专辑的资源
在
public ActionResult Edit(int id) { Album album = db.Albums.Find(id); ViewBag.GenreId = new SelectList(db.Genres, “GenreId”, “Name”, album.GenreId); ViewBag.ArtistId = new SelectList(db.Artists, “ArtistId”, “Name”, album.ArtistId); return View(album); }
高亮的代码是为了构建从数据库中得到流派和艺术家列表,将这些列表存在ViewBag中以便填充DropDownList辅助方法检索
SelectList类用于代表构建下拉表需要的数据,该构造函数第一个参数指定了要放在列表中的项,第二个参数是一个属性名,
该属性包含当用户选择一个指定的项时使用的值,第三个参数是每一项要显示的文本(“PoP”)最后,第四个参数包含了最初
选定的项的值
响应编辑时的POST请求
该操作有一个Album模型对象参数,并将该参数对象保存到数据库中
1、编辑happy path
Happy path就是当模型处于有效的状态并且可以将对象保存到数据库时执行的代码路径,操作通过ModelState.IsValid属
性来检查模型对象的有效性,如果模型处于有效状态,则:
db.Entry(album).state=EntityState.Modified;,该代码告知该信息已存在,这时执行对其进行更新即可.
2、编辑sad path
Sad path 当模型无效时操作采用的路径,在sad path中,控制器操作需要重新创建Edit视图,以使用户改正自身产生的错误.
模型绑定
DefaultModelBinder
当操作带有参数时,MVC运行环境会使用一个模型绑定器来构建这个参数,默认模型绑定器为DefaultModelBinder,例如在
Album对象情 形中,默认的绑定器检查Album类,并查找能用于绑定的所有Album属性.当模型绑定器看到Album有Title属性
时,它就在请求中查找名为 “Title”的参数,模型绑定器使用值提供器的组件请求在不同区域中查找参数,可以查看路由数
据、查询字符串、表单集合等
显示模型绑定
当操作中有参数时,模型绑定器会隐式的工作.可以使用控制器中的UpdateModel和TryUpdateModel方法显示的调用模型
绑定,如果在模 型绑定期间出现错误或者模型无效则UpdateModel则会抛出异常,但是使用TryUpdateModel方法则不会抛
出异常,该方法会返回一个布尔 值,true表示模型绑定成功,false表示失败.模型绑定会产生模型状态,模型绑定器移近模型中
的每一个值在模型状态中都会有一条相应的记录,绑定后 可以随时查看模型状态以检查模型绑定是否成功.
相关文章推荐
- ASP.NET MVC3学习--视图和模型(4)
- ASP.NET MVC3学习心得-----视图和模型
- ASP.NET MVC3学习--视图和模型(1)
- ASP.NET MVC3学习--视图和模型(2)
- ASP.NET MVC3学习--视图和模型(3)
- ASP.NET MVC3学习心得-----视图和模型
- ASP.NET MVC3学习心得-----视图和模型
- Laravel 5框架学习之模型、控制器、视图基础流程
- Qt-模型和视图的学习
- openGL学习笔记2——视图和模型变换
- OPENGL 变换_视图模型变换与部分透视变换_学习笔记
- SNMP学习 SNMPv3 VACM(视图访问控制模型)
- Qt5开发学习之模型/视图结构(十)
- ASP.NET MVC3 匿名类型视图模型无法识别的解决方案
- SNMP学习 SNMPv3 VACM(视图访问控制模型)
- OPENCV学习笔记3-4_使用模型-视图-控制器设计应用程序
- [我的PHP之旅] YII框架学习 02.控制器 视图 模型
- Qt 学习之路:模型-视图高级技术
- QT 模型视图学习
- Qt学习之路之模型/视图类