Я закончил новый урок (магазин музыки) для MVC 3 на www.asp.net . Все прошло нормально, за исключением той части, где два выпадающих списка должны быть заполнены из базы данных - и это не так.
Я следовал руководству и дважды проверил свой код. Я думаю, что проблема может быть с помощью папки editorstemplate. Понятия не имею, так как я новичок в MVC. Так в чем же проблема или как я могу ее отладить?
==============
Редактировать 1
Хорошо, вот код кода для album.cshtml, который находится в папке / views / shared / editortemplates /
@model MvcMusicStore.Models.Album
<p> @Html.LabelFor(model => model.Genre) @Html.DropDownList("GenreId",
new SelectList(ViewBag.Genres as System.Collections.IEnumerable,
"GenreId", "Name", Model.GenreId))
</p>
<p> @Html.LabelFor(model => model.Artist) @Html.DropDownList("ArtistId",
new SelectList(ViewBag.Artists as System.Collections.IEnumerable,
"ArtistId", "Name", Model.ArtistId))
</p>
который, я считаю, населён:
public ActionResult Edit(int id)
{ ViewBag.Genres = storeDB.Genres.OrderBy(g => g.Name).ToList(); ViewBag.Artists = storeDB.Artists.OrderBy(a => a.Name).ToList();
var album = storeDB.Albums.Single(a => a.AlbumId == id);
return View(album);
}
Я не получаю никаких ошибок, за исключением того, что раскрывающиеся списки не заполнены ...
==============
Редактировать 2
, поэтому у меня есть edit.cshtml в /views/storemanager/edit.cshtml, а затем у меня есть файл album.cshtml в /views/shared/editortemplates/album.cshtml. Предполагается, что выпадающие списки из файла album.cshtml помещаются в файл edit.cshtml. Я поместил код из файла album.cshtml непосредственно в файл edit.cshtml, и он отлично работает. Поэтому я думаю, что проблема в том, что editortemplates / album.cshtml не работает, т.е. заполняет страницу edit.cshtml. Так что же дает? Спасибо ... * * 1023
==============
Редактировать 3
Хорошо, я нашел проблему, я получил рабочий источник от CodePlex. Кажется, я не правильно настроил страницы create.cshtml и edit.cshtml.
Во всяком случае, теперь все исправлено, так что спасибо ...