このシンプルなブログを行う方法を見つけようとしています。私はすべてのブログ投稿が一覧表示されているフロントページを持っています。ブログ投稿のタイトルをクリックすると、投稿全体が表示され、そこにコメントすることもできます。
私の問題は、コントローラーを介してモデルを渡そうとすると、投稿またはコメントのいずれかのモデルにしかアクセスできないことです。
これが私のモデルです:
public class Post
{
public int ID { get; set; }
public string Title { get; set; }
public string Message { get; set; }
public string Author { get; set; }
public DateTime DateTime { get; set; }
public List<Comment> Comments { get; set; }
}
public class Comment
{
public int ID { get; set; }
public int PostID { get; set; }
public string Message { get; set; }
public string Author { get; set; }
public DateTime DateTime { get; set; }
}
これが私のコントローラーです:
public ActionResult Details(int id)
{
**var dbPosts = db.Posts.Find(id);**
return View(dbPosts);
}
これが私の見解です:
@model Blog.Models.Post
@{
ViewBag.Title = "Details";
}
<h2>@Html.ActionLink(Model.Title, "Details", new { id = Model.ID (@Html.ActionLink("Rediger", "Edit", new { id = Model.ID }) - @Html.ActionLink("Slet", "Delete", new { id = Model.ID }))</h2>
<span class="written">skrevet d. @Model.DateTime.ToLongDateString() @Model.DateTime.ToShortTimeString() af @Model.Author</span>
<p>@Model.Message</p>
<hr />
@foreach (var comment in Model.Comments) {
<span class="written">skrevet d. @comment.DateTime.ToLongDateString() @comment.DateTime.ToShortTimeString() af @comment.Author</span>
<p>@comment.Message</p>
<hr />
}
@using (Html.BeginForm()) {
<label for="Author">Author</label>
<input type="text" id="Author" name="Author" />
<label for="Message">Message</label>
<textarea id="Message" name="Message"></textarea>
<input type="submit" value="Gem" />
<input type="reset" value="Reset" />
}
私が星でマークしたのは、それが間違っていると思われる場所です..投稿モデルとコメントモデルの両方をこの詳細ビューに渡す必要があります。私の質問は、どうすればいいですか?
学ぼうとしているだけで、高度なものを作ろうとしているわけではありません。
よろしくお願いいたします。