リマインダを使えばOKです。
ちょいちょい忘れるのでメモ。
2013年4月7日日曜日
2013年4月5日金曜日
MVC Music Store で Edit ができない
ASP.NET MVC のサンプルアプリケーションとして紹介されている
「MVC Music Store」ですが、現在ASP.NET MVC3に対応したバージョン3が公開されております。
【ASP.NET】MVC Music Store Tutorial
http://www.asp.net/mvc/tutorials/mvc-music-store
【CodePlex】MVC Music Store
http://mvcmusicstore.codeplex.com/
ただし、チュートリアル通りに進めていくと、管理画面のEditのところで、
OptimisticConcurrencyExceptionが発生しエラーとなってしまいます。
原因は Album Model が AlbumId をバインドしないようになっているからです。
Album.cs
解決するには、この部分を消してしまうか、
Album.cs
コントローラー側で別途バインドしてやる必要があります。
StoreManagerController.cs
【参考】
http://mvcmusicstore.codeplex.com/workitem/6648
「MVC Music Store」ですが、現在ASP.NET MVC3に対応したバージョン3が公開されております。
【ASP.NET】MVC Music Store Tutorial
http://www.asp.net/mvc/tutorials/mvc-music-store
【CodePlex】MVC Music Store
http://mvcmusicstore.codeplex.com/
ただし、チュートリアル通りに進めていくと、管理画面のEditのところで、
OptimisticConcurrencyExceptionが発生しエラーとなってしまいます。
原因は Album Model が AlbumId をバインドしないようになっているからです。
Album.cs
namespace MvcMusicStore.Models { [Bind(Exclude = "AlbumId")] //←ココ public class Album { [ScaffoldColumn(false)] public int AlbumId { get; set; } [DisplayName("Genre")] public int GenreId { get; set; } ...
解決するには、この部分を消してしまうか、
Album.cs
namespace MvcMusicStore.Models { //[Bind(Exclude = "AlbumId")] public class Album { [ScaffoldColumn(false)] public int AlbumId { get; set; } [DisplayName("Genre")] public int GenreId { get; set; } ...
コントローラー側で別途バインドしてやる必要があります。
StoreManagerController.cs
namespace MvcMusicStore.Models { [Authorize(Roles = "Administrator")] public class StoreManagerController : Controller { ... // // POST: /StoreManager/Edit/5 [HttpPost] public ActionResult Edit(Album album, int id) { if (ModelState.IsValid) { album.AlbumId = id; //←ココ db.Entry(album).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId); ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId); return View(album); } ...
【参考】
http://mvcmusicstore.codeplex.com/workitem/6648
ラベル:
ASP.NET MVC,
C#
登録:
投稿 (Atom)