У меня есть объект с именем Domain.Models.BlogPost
, который содержит следующие свойства:
- PostID
- Заголовок
- Автор
- PostedDate
- Body
У меня также есть объект с именем Domain.Models.PostComment
, который содержит следующие свойства:
- CommentID
- PostID
- Автор
- Электронная почта
- Веб-сайт
- Тело
BlogPost
содержит много PostComments
.Отношение один ко многим.
Теперь у меня есть такое представление (отдельная форма комментария от кода сообщения блога через html-комментарий):
@model Domain.Models.BlogPost
@using Domain.Models;
@{
ViewBag.Title = "Post";
}
<div class="postTitle">@Model.Title</div>
<div class="subInfo">
Posted by @Model.Author on @Model.PostedDate.ToString("D")
</div>
<div class="postBody">
@Html.Markdown(Model.Body)
</div>
<br />
@Model.PostComments.Count Comment(s).
<div class="comments">
@foreach (PostComment postComment in Model.PostComments)
{
Html.RenderPartial("PostComment", postComment);
}
</div>
<!-- BELOW IS THE ADD COMMENT FORM -->
<div id="addComment">
@using (Html.BeginForm("AddComment", "Blog"))
{
<text>
@Html.Hidden("PostID", Model.PostID)<br />
Name: @Html.TextBox("Author")<br />
Email: @Html.TextBox("Email")<br />
Website: @Html.TextBox("Website")<br />
Body: @Html.TextArea("Body")<br />
<input type="submit" value = "Add Comment" />
</text>
}
</div>
@Html.ActionLink("Add Comment", "AddComment")
Проблема в том, что форма комментария использует@Html.TextBox("Author")
и @Html.TextBox("Body")
, они заполняются данными из модели, которая также содержит свойства Author
и Body
.Любые предложения о том, как это исправить, чтобы в эти поля не помещались значения при загрузке страницы?
Я также пытался создать BlogPostViewModel
и установить его в качестве модели представления и назначить BlogPost
свойство с моей фактической моделью:
public class BlogPostViewModel
{
public BlogPost BlogPost { get; set; }
public PostComment NewComment { get; set; }
}
Тогда я сделал @Html.TextBoxFor(x => x.NewComment.Author)
, но когда форма отправлена для этого метода действия:
public ActionResult AddComment(PostComment postComment)
{
// ...
}
postComment
не привязывался кзначения формы: /