私はasp .net mvc3が初めてです。単純なブログ コメント セクションを作成しようとしています。
私はコメントビューモデルを持っています
public class CommentsViewModel
{
public CommentModel NewComment { get; set; }
public IList<CommentModel> CommentsList { get; set; }
}
対応するビューは次のようになります
<div id="CommentsArea">
@Html.Partial("CommentsList", Model.CommentsList)
</div>
@using (Ajax.BeginForm("Create",
"Comment",
new { id = Model.NewComment.detailsId, comment = Model.NewComment },
new AjaxOptions { UpdateTargetId = "CommentsArea" ,
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace}))
{
<div class="display-label">Add Comment</div>
<div class="display-field">
@Html.EditorFor(model => Model.NewComment.Body)
</div>
<input type="submit" value="Post" />
}
ユーザーが投稿ボタンを入力すると、「CommentsArea」が新しいコメントリストで更新され、フォームの値が空のテキストでクリアされます。
Post メソッドは次のとおりです。
[HttpPost]
public ActionResult Create(int id, CommentModel newcomment)
{
var newsItem = m_db.NewsList.Single(news => news.Id == id);
if (!string.IsNullOrWhiteSpace(newcomment.Body))
{
newcomment.detailsId = id;
newsItem.Comments.Add(newcomment);
m_db.SaveChanges();
}
return PartialView("CommentsList", newsItem.Comments);
}
ユーザーが [投稿] ボタンをクリックすると、リストは適切に更新されますが、フォームの値はクリアされません。つまり、「新しいコメント」というコメントを投稿した場合、コメント リストは「新しいコメント」で更新されますが、そのテキストはフォームの編集ボックス内に残ります。
そのテキストをクリアするにはどうすればよいですか?