Music Store学习笔记(2015年7月10日)

今天任务:对整体框架以及代码细节进行过滤式理解,调试功能。

一。出现:“存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。”

运行错语的原因是:

1、页面上注释了以下语名:@Html.HiddenFor(model => model.AlbumId),加上后,运行正常。

或2、Album类中的 [Bind(Exclude = "AlbumId")]好象有问题,导致在StoreManager-Edit视图表单递交时,AlbumID无法正确递交,总是为“0”,注释掉这一名,即可正确运行。(不知是否在按教程输入代码时,时否有错误所致)。

二。

1.{"DELETE 语句与 REFERENCE 约束"FK_InvoiceLine_Album"冲突。该冲突发生于数据库"MvcMusicStore",表"dbo.OrderDetails", column 'AlbumId'。 语句已终止。"}

alter table MvcMusicStore.dbo.OrderDetails
drop CONSTRAINT FK_InvoiceLine_Album

2.{"DELETE 语句与 REFERENCE 约束"FK_Cart_Album"冲突。该冲突发生于数据库"MvcMusicStore",表"dbo.Carts", column 'AlbumId'。 语句已终止。"}

alter table MvcMusicStore.dbo.Carts
drop CONSTRAINT FK_Cart_Album

3.

controller中的ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name");

与view的 @Html.DropDownList("GenreId", String.Empty)对应使用

若注释掉ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name");

则报错不存在具有键“GenreId”的“IEnumerable<SelectListItem>”类型的 ViewData 项。

4.Html.RenderAction("CartSummary", "ShoppingCart")需要return PartialView()

可以理解为,RenderAction只是一个框架,this.view生成时,给服务器一个get请求,控制器处理后,重新返回一个页面,填充这个框架。

5. Session[ShoppingCart.CartSessionKey] = null;在logoff()中添加此句

原文地址:https://www.cnblogs.com/xiaokangzhu/p/4636114.html