我想補充了一條信息類,我在BlogController
Add
動作是這樣的:填充下拉列表和添加新行,實體框架分貝
private readonly IBlogPostRepository _blogPostRepository;
private readonly ICategoryRepository _categoryRepository;
public BlogController()
{
_blogPostRepository = new BlogPostRepository(new SiteContext());
_categoryRepository = new CategoryRepository(new SiteContext());
}
public BlogController(IBlogPostRepository blogPostRepository, ICategoryRepository categoryRepository)
{
_blogPostRepository = blogPostRepository;
_categoryRepository = categoryRepository;
}
public ActionResult Add()
{
ViewData["categoryList"] = _categoryRepository.GetAllCategory();
return View("Add");
}
[HttpPost]
public ActionResult Add(BlogPost blogPost)
{
if (ModelState.IsValid)
{
blogPost.PublishDate = DateTime.Now;
_blogPostRepository.AddPost(blogPost);
_blogPostRepository.Save();
return RedirectToAction("Add");
}
return new HttpNotFoundResult("An Error Accoured while requesting your order!");
}
我的第一個問題是,爲什麼我不能投分類列表到SelectList
在剃鬚刀通過DropDownList
選擇一個類別?我的視圖代碼是這樣的:
<div>
@Html.LabelFor(b => b.Category)
@Html.DropDownList("Category", ViewData["categoryList"] as SelectList)
@Html.ValidationMessageFor(b => b.Category)
</div>
我的第二個問題是:我怎麼能在Add
添加動作類與POST
的要求嗎?
您可以投射Viewdata。你這樣做是錯的。你使用C#或VB? – 2013-02-10 21:27:10
添加類別的最佳方式是重新呈現下拉菜單。你可以使用其他方式像JQuery,但這是最乾淨的。 – 2013-02-10 21:28:35
我正在使用C#,我該如何施放?我得到這個錯誤:沒有類型爲'IEnumerable'的ViewData項具有'Category'鍵。這是什麼 ?? –
2013-02-10 21:33:49