Контроллер
public ActionResult Create()
{
return View(new PageViewModel());
}
[HttpPost]
public ActionResult Create(Page page)
{
try
{
repPage.Add(page);
repPage.Save();
return RedirectToAction("Edit");
}
catch
{
return View(new PageViewModel());
}
}
PageViewModel
public class PageViewModel
{
public Page Page { get; set; }
public List<Template> Templates { get; set; }
private TemplateRepository repTemplates = new TemplateRepository();
public PageViewModel()
{
Page = new Page();
Templates = repTemplates.GetAllTemplates().ToList();
}
}
Части моего взгляда
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Website.Models.PageViewModel>" %>
<%= Html.TextBoxFor(model => model.Page.Name, new { @style = "width:300px;" })%>
<%= Html.DropDownListFor(model => model.Page.Template, new SelectList(Model.Templates, "ID", "Name"), new { @style = "width:306px;" })%>
Шаблон:
Я БЫ
Имя
Страница:
Я БЫ
название
TemplateID
Мой выпадающий список заполнен правильно в представлении, никаких проблем нет. Моя проблема в том, что я не могу получить выбранное значение из выпадающего списка.
В моем контроллере я помещаю точку останова в Edit
и вижу, что текстовое поле Name
заполняется введенным в него значением. Но выбранный из выпадающего списка установлен на ноль.
альтернативный текст http://www.mgmweb.no/images/debug.jpg
Я что-то упустил, я думал, что в объекте Page
должно быть установлено правильное значение Template
. Что я делаю не так?