我想創建一個索引頁(其產品列表使用IEnumerable
)的組合視圖和創建頁面(其中有添加/保存的東西) ,我收到了lambda表達式的錯誤。asp.Net中的組合視圖和IEnumerable模型的問題MVC
這裏是我的代碼:
@model IEnumerable<OIS.Models.Category>
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.category_name)
</th>
<th>
@Html.DisplayNameFor(model => model.date_created)
</th>
<th>
@Html.DisplayNameFor(model => model.date_updated)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.category_name)
</td>
<td>
@Html.DisplayFor(modelItem => item.date_created)
</td>
<td>
@Html.DisplayFor(modelItem => item.date_updated)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.ID }) |
@Html.ActionLink("Details", "Details", new { id = item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.ID })
</td>
</tr>
}
</tbody>
</table>
//For for Creating new Item
@using (Html.BeginForm()){
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Category</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
//Im Gettig Error with this line (model => model.category_name)
@Html.LabelFor(model => model.category_name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
//Im Gettig Error with this line (model => model.category_name)
@Html.EditorFor(model => model.category_name, new { htmlAttributes = new { @class = "form-control" } })
//Im Gettig Error with this line (model => model.category_name)
@Html.ValidationMessageFor(model => model.category_name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
我該怎麼辦? 編輯: 這裏是我的控制器
namespace OIS.Controllers{
public class CategoryController : Controller
{
private DbOnlineIS db = new DbOnlineIS();
// GET: Category
public ActionResult Index()
{
return View(db.Categories.ToList());
}
// Post: Category
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index([Bind(Include = "ID,category_name,date_created,date_updated")] Category category)
{
if (ModelState.IsValid)
{
category.date_created = DateTime.Now;
category.date_updated = DateTime.Now;
db.Categories.Add(category);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(category);
}
// GET: Category/Create
public ActionResult Create()
{
return View();
}
// POST: Category/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,category_name,date_created,date_updated")] Category category)
{
if (ModelState.IsValid)
{
category.date_created = DateTime.Now;
category.date_updated = DateTime.Now;
db.Categories.Add(category);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(category);
}
什麼錯誤正在發生? –
您必須創建ViewModel –
錯誤說'不包含category_name的定義' – jessemiel