カテゴリ名を取得する必要がある blogPost があり、これを行うために get アクションで次のようにしました。
public ActionResult Add()
{
ViewBag.CategoryList = new SelectList(_categoryRepository.GetAllCategory(), "Id", "Name");
return View(new BlogPost());
}
そして私が持っているビューで:
@model Blog.Domain.Model.BlogPost
@{
ViewBag.Title = "AddPost";
Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml";
}
<fieldset>
@using (Html.BeginForm("Add", "Blog", FormMethod.Post))
{
@Html.ValidationSummary()
<div>
@Html.LabelFor(b => b.Title)
@Html.TextBoxFor(b => b.Title)
@Html.ValidationMessageFor(b => b.Title)
</div>
<div>
@Html.LabelFor(b => b.Body)
@Html.EditorFor(b => b.Body)
@Html.ValidationMessageFor(b => b.Body)
</div>
<div>
@Html.LabelFor(b => b.Summary)
@Html.TextBoxFor(b => b.Summary)
@Html.ValidationMessageFor(b => b.Summary)
</div>
<div>
@Html.LabelFor(b => b.Category)
@Html.DropDownListFor(model => model.Category.Id, ViewBag.CategoryList as SelectList, "--- Select Category ---", new { @class = "some_class" })
</div>
<div>
<input type="submit" value="Add Post" />
</div>
}
</fieldset>
Post アクションでは、次のコードを記述しました。
[HttpPost]
public ActionResult Add(BlogPost blogPost)
{
if (ModelState.IsValid)
{
blogPost.PublishDate = DateTime.Now;
_blogPostRepository.AddPost(blogPost);
_blogPostRepository.Save();
return View();
}
return View();
}
私はこのコードが正確に正しく書かれたかどうか確信が持てませんが、私は孤独な時間のためにこの問題を抱えています! エンティティフレームワークを使用してマスター詳細を挿入します。この場合、カテゴリを選択してデータベースに正常に送信します。以前にこのようなことを書いている場合は、それについて私を助けてください、ありがとう