我想补充了一条信息类,我在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