Попытка собрать моих уток подряд с помощью MVC3 + Razor!
Наконец-то я понял концепцию «View-Model», чтобы обернуть мои классы сущностей и адаптировать их к View.
Теперь я собираю страницу с частичным представлением , представляющим различные элементы, необходимые для страницы (например, раскрывающиеся списки, формы и т. Д.), Каждый из которых будет представлен моделью представления. 'который отображается на класс сущностей и обратно в мою базу данных.
Сначала я пытаюсь создать частичное представление, представляющее компонент, представляющий собой раскрывающийся список элементов в базе данных, который при выборе будет отображать другое частичное представление и т. Д.
Я просто не могу понять, почему я не могу сгенерировать этот выпадающий список, и как только я сделаю, как главный «контроллер» отображает все это вместе?
Короче говоря, мне любопытно - нужен ли каждому частичному представлению контроллер, даже если он основан на строго типизированной модели?
Разбить его:
My Entity Model-Wrapper (получение всех элементов, доступных из базы данных
* Обновлено * - к рабочему примеру, обратите внимание, я не думаю, что задавал вопрос right раньше, но это даст вам идея того, чего я пытался достичь! Следующий шаг - перенести все эти операции «с» контроллера (и заполнить их в конструкторе по умолчанию для моделей, чтобы потом было легче их использовать).
CharactersListViewModel.cs
Going to move avoid the 'View Model' for now until I get a little more comfortable
Создание частичного представления, в котором отображается раскрывающийся список с идентификатором символов в качестве значения и именем в качестве текста, создание строго типизированного представления, частичное представление
контроллер для главной страницы в разделе:
HistoryController.cs
public class HistoryController : Controller
{
public ActionResult Index()
{
var list = new List<SelectListItem>();
using (var _database = new fff_newEntities())
{
foreach(Character c in (from c in _database.Characters select c)){
list.Add(new SelectListItem(){Text = c.CharacterName, Value = c.Id.ToString()});
}
}
ViewBag.Clients = list;
}
}
//
// GET: /History/Details/5
public ActionResult Details(int id)
{
return View();
}
//
// GET: /History/Create
public ActionResult Create()
{
return View();
}
//
// POST: /History/Create
[HttpPost]
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /History/Edit/5
public ActionResult Edit(int id)
{
return View();
}
//
// POST: /History/Edit/5
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
public ActionResult Delete(int id)
{
return View();
}
//
// POST: /History/Delete/5
[HttpPost]
public ActionResult Delete(int id, FormCollection collection)
{
try
{
// TODO: Add delete logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
Индекс для отображения всей страницы, включая частичный компонент (мой раскрывающийся список)
index.cshtml
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.DropDownListFor(x => x.CurrentCharacterId, (IEnumerable<SelectListItem>)ViewBag.Clients);
В последней строке здесь, @Html.Action (...) где я на самом деле создаю выпадающий список?
Извините, если это кажется тривиальным, но я не могу обернуть голову вокруг этого, и я действительно хочу изучить MVC3 + Razor правильно!