뉴스 페이지를 만드는 중입니다. 뉴스 모델과 뉴스에 카테고리가 있습니다. 카테고리가 데이터베이스에서옵니다. 뉴스를 만들고 카테고리를 뉴스에 할당 할 수 있기를 원합니다. 아래는 제가 어떻게 해보려고했는지입니다. 문제는 카테고리에 대한 드롭 다운을 만들려고하고 양식이 채워지면 데이터베이스에 저장되도록 제출됩니다.뉴스와 카테고리를 렌더링하는 면도기, 복수 모델
여기에 오류가 있습니다. 저는 IEnumerable<SelectListItem> categoriesList
을 전달하지만 News Model을 기대합니다. 하나의보기에서 여러 모델을 사용하려면 어떻게해야합니까? 어떻게하면 코드 아래에서 수정할 수 있습니까?
@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);
}