最新评论
Re:ASP.NET MVC 音乐商店 - 0 概览 changwei0708 2012-02-13 22:16
最近才开始看MVC3
写得很仔细,之前看了园子里赵老师的,理论知识很深入,但是是比较老的MVC学习视频
楼主这个很有学习意义,从中受益了
存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。
我在Edit.cshtml里有这句 @Html.HiddenFor(model => model.AlbumId)
为什么还出现这样的错误 ?
[code=csharp]
storeDB.Entry(album).State = System.Data.EntityState.Modified;
storeDB.SaveChanges();
return RedirectToAction("Index");
[/code]
这一句里,找不到Entry这个方法。我用的是EF4.2。还有,之前问的那个FIND方法也找不到。
所以我写成这样了:
[code=csharp]
db.XXXs.Attach(XXX);
db.ObjectStateManager.ChangeObjectState(XXX, System.Data.EntityState.Modified);
db.SaveChanges();
//为什么点不出来Entry这个方法呢?
[/code]
求教~
经过多次尝试,我用codefirst总是无法创建数据表。求教~
[code=csharp]
public class Member
{
public int Id { get; set; }
public string Name { get; set; }
}
public class TXLDBContext:DbContext
{
public DbSet<Member> Members { get; set; }
}
//也写好了数据库连接字符串。
[/code]
但总是无法建表。
您好:
我想在代码中配置数据库连接串 采用的是在数据库实体中加连接串
public class imeitianEntities:DbContext
{
public imeitianEntities(string s):base(s)
但是providerName不知道怎么设置,请问要怎么处理?
谢谢!
缺少管理商品分页功能实现,和退出音乐商店实现。楼主再辛苦一下!
Re:装箱拆箱与对象的比较 冠军 2012-02-08 20:42
@随风浪迹天涯
堆中保存的是对象,可是对象中保存什么呢?,对象中的数据又分为两类,对象和值,如果是对象,那么,在对象中保存引用,如果是值得话,对象中直接保存值。
首先在堆中保存对象,这个对象的引用被保存在 obj 中。
Re:装箱拆箱与对象的比较 随风浪迹天涯 2012-02-08 20:20
而第二行对 obj 的赋值要复杂一点点,由于 obj 的类型是 object 类型,这是引用类型,所以,在堆栈中保存的必须是一个对象的引用,而不能是一个值,此时,会发生著名的装箱,CLR [b]会在堆中创建一个对象,在这个对象中保存变量 i 的值,[/b]并且,还会同时保存这个值的类型,这里是整数类型。此时,在内存中将会存在两个 10,一个保存在栈中,一个保存在堆中。
会在堆中创建一个对象,在这个对象中保存变量 i 的值, 不是在这里创建一个引用地址嘛?在堆中也会保存值啊?
受教了。。
学习~MVC很强大~楼主有没有Razor的语法的文章?这是第一次接触mvc,对于view层的语法很不熟悉,只能照着敲一遍代码,再慢慢理解
@冠军
问题已经解决,原来是定义Model的时候DeleteId写成了DeletedId,呵呵,非常感谢您的指导~
@冠军
调试中发现,服务器端收到正确的id,而且会出现这样的情况,第一次点 “Remove”,服务器端把相应的album移除了,页面没有变化,再次点击“remove”时,服务器端就会报错,因为该id已经被移除了。
@kingdizzy
服务器端收到正确的 id 了吗?需要确认一下。
jQuery-1.5.1 是更新的 jQuery 版本,没有问题。
@冠军
1、在服务端扑捉到了删除的Action被成功执行,返回的是:
[code=csharp]
[HttpPost]
public ActionResult RemoveFromCart(int id)
{
var cart = ShoppingCart.GetCart(this.HttpContext);
string albumName = storeDB.Carts
.Single(item => item.RecordId == id)
.Album
.Title;
int itemCount = cart.RemoveFromCart(id);
var results = new ShoppingCartRemoveViewModel()
{
message = Server.HtmlEncode(albumName) +
" has been removed from your shopping cart.",
CartTotal = cart.GetTotal(),
CartCount = cart.GetCount(),
ItemCount = itemCount,
DeletedId = id
};
return Json(results);
}
[/code]
奇怪的是看下图:
[img]http://pic002.cnblogs.com/images/2012/294004/2012020721570160.jpg[/img]
2、建项目之后自动存在的是jquery-1.5.1.min.js,如下图:[img]http://pic002.cnblogs.com/images/2012/294004/2012020721590282.jpg[/img]
这个和jQuery-1.4.4 有区别吗?
@kingdizzy
1. handleUpdate 在使用 jQuery 的时候并不会被调用,这里的函数提供了两种脚本支持:jQuery 和 MS Ajax ,只会使用其一,我们实际只使用了 jQuery 。页面本该被移除的还在问题的原因,在通过脚本调用删除的 Action 之后,如果服务器成功返回,那么,才会执行更新页面的匿名函数,你要检查一下删除的 Action 返回了什么,是不是没有成功调用。
2. jQuery-1.4.4 的脚本在创建项目之后应该直接在项目的模板中已经提供。自己下载的话,可以到 jquery 的网站: [url=http://jquery.com/]http://jquery.com/[/url]
1、点击 “Remove from cart”,会调用后台的public ActionResult RemoveFromCart(int id) 方法,可是前台的JS:handleUpdate()并没有被调用到,导致前提页面本该被移除的Album还在,请问是什么原因?
2、/Scripts/jquery-1.4.4.min.js这个JS文件在官网下载的源码中没有找到,请问在哪里能下载?
@大破锣
在 ASP.NET 中的 MemberShipProvider 提供了用户管理的抽象基类,可以自己实现。
但是需要更多的配置,可能你会觉得更加麻烦了。
@三十六烦恼风
删除数据库,重新生成,解决那个问题。为什么要这样,MVC3验证BUG吗?
运行ASP.NET 站点配置工具后,提示无法连接数据库(我用的是远程数据库)。根据反馈信息,使用aspnet_regsql工具,创建和配置数据库,按照向导,一步一步完成设置。经查看,远程数据库中已建立了多个类似membership等表。向导提示完成。期间,在输入服务器和SA信息后,提示“未能查询SQL Server中的数据库名称的列表 对象名'sysdatabases'无效。”,除此之外,一切正常。
但站点配置工具仍然无法连接数据库。
——————————————————
我的问题是:能否自定义一套简单的登录和权限验证系统呢?总感觉微软自带的这个,太过于繁琐和复杂了。
谢谢~
为什么我的Browse页面是显示在genremenu的下方不显示在右侧呢,下载的例子也是显示在下方?别的都正常
@大破锣
partial 是部分类,其实在其他部分并没有用到。
如果定义为 partial ,那么,可以在其他部分进行扩展。
//[StringLength(1024)]
public string AlbumArtUrl { get; set; }
//[Required(ErrorMessage = "An Album Title is required")]
//[StringLength(160)]
public string Title { get; set; }
把注释放开,连不上数据库报错!楼主怎么回事?
@冠军
非常感谢您的回答,再看一下我上一个问题吧?9楼的那个问题。
Re:转载:搭建Silverlight 5中文开发环境 On the Way 2012-01-29 19:08
官网已经提供silverlight5中文SDK下载了!
@大破锣
可以。
Find 必须使用主键,这里使用的正是主键。
Single 不要求必须是主键,更加灵活一些。
在ShoppingCartController中,
[code=csharp]
public ActionResult AddToCart(int id)
{ var addedAlbum = storeDB.Albums.Single(album => album.AlbumId == id);
// ……
}
[/code]
这个single,能否改为find?
表示在进行数据绑定的时候,不包括 AlbumId 这个属性。
在在 Models 文件夹中创建的ShoppingCart 类中,
[code=csharp]
public partial class ShoppingCart
[/code]
为什么要加一个partial?别的地方还有这个类吗?
试验通过,没有以上朋友提到的问题。
但的确不理解[Bind(Exclude="AlbumId")]有什么用。
@冠军
是啊,你的文中说把LabelFor那一行修改为DropDownList,我觉得应该是改EditorFor那一句,对吗?
你说的是下面的一段吗?
<div class="editor-label">
@Html.LabelFor(model => model.GenreId)
</div>
<div class="editor-field">
@Html.DropDownList("GenreId", String.Empty)
@Html.ValidationMessageFor(model => model.GenreId)
</div>
很棒的文章,这几天就靠您这几篇文章过活了~感谢~
—————————————————————————————
“在 Create 视图中使用 HtmlHelper 来显示下拉列表
”小节中,欲修改的代码:
[code=csharp]
@Html.LabelFor(model => model.GenreId)
[/code]
疑应为修改下面这一句:
[code=csharp]@Html.EditorFor(model => model.GenreId)[/code]
军哥,您辛苦了!小弟Monkey在这里祝您新年快乐!
Re:DOM 中的事件处理 Cson 2012-01-18 20:18
更好的方法是在一开始运行时就判断 然后根据不同特征返回不同形式的绑定function 这样就可以不必每次调用事件绑定都要做一次特性判断
@冠军
这个错误,是在你的数据库中不要创建。EF自动创建.
Re:《ASP.NET 本质论》源码下载 ~/哲/.aspx?u= 2012-01-16 16:39
支持,顶上
您好:我生成的项目能运行但是哪里都找不到数据库.添加了数据也没问题就是看不到数据库.这是怎么回事?您有QQ吗?能帮我远程下吗
Browse.cshtml 中,Model 的类型为 @model MvcMusicStore.Models.Genre,Genre 类型本身并不是集合类型,它的属性 Albums 才是集合,对于 Index.cshtml 来说,传递的模型本身就是一个集合。
问一下,同样是用到了foreach循环,为什么index.cshtml中要引用IEnumerable,而browse.cshtml中不需要?