我創建一個新聞頁面。我有新聞模式和新聞有一個類別。類別來自數據庫。我希望能夠創建新聞併爲新聞分配類別。下面是我試圖做到這一點。問題是我試圖爲類別創建一個下拉列表,一旦表單被填充,它將被提交以保存在數據庫中。剃刀呈現新聞和類別,多個模型
這是錯誤:我通過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);
}