ASP.NET MVC3学习--视图和模型(5)

编辑专辑   

创建编辑专辑的资源


    在

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表示失败.模型绑定会产生模型状态,模型绑定器移近模型中

 

的每一个值在模型状态中都会有一条相应的记录,绑定后 可以随时查看模型状态以检查模型绑定是否成功.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值