Я создаю страницу новостей. У меня есть модель новостей и новости категории. Категория исходит из базы данных. Я хочу иметь возможность создавать новости и присваивать категорию новостям. Ниже я попытался это сделать. Проблема в том, что я пытаюсь создать раскрывающийся список для категорий и после заполнения формы он будет отправлен для сохранения в базе данных.Бритва для рендеринга новостей и категории, Несколько моделей
Произошла ошибка: я проезжаю IEnumerable<SelectListItem> categoriesList
для просмотра, но она ожидает модель новостей. Как я могу использовать несколько моделей в одном представлении? как я могу исправить код ниже, чтобы он работал?
@model App.Models.News
@{
ViewBag.Title = "Create";
}
<h2>Create news</h2>
@using (Html.BeginForm()) {
<div>
<fieldset>
<legend>Category Information</legend>
<div class="editor-label">
@Html.LabelFor(m => m.Title)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Title)
@Html.ValidationMessageFor(m => m.Title)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.Category)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Category)
@Html.ValidationMessageFor(m => m.Category)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.NewsContent)
</div>
<div class="editor-field">
@Html.TextAreaFor(m => m.NewsContent)
@Html.ValidationMessageFor(m => m.NewsContent)
</div>
<p>
<input type="submit" value="Log On" />
</p>
</fieldset>
</div>
}
public ActionResult Create()
{
IList<Category> categories;
using (var session = NHibernateHelper.OpenSession())
{
using (var tx = session.BeginTransaction())
{
categories = session.CreateCriteria(typeof(Category)).List<Category>();
tx.Commit();
}
}
IEnumerable<SelectListItem> categoriesList = categories.Select(category => new SelectListItem() { Text = category.Name, Value = category.Id.ToString() });
return View(categoriesList);
}