Ich bin neu bei asp .net mvc3. Ich versuche, einen ziemlich einfachen Abschnitt für Blog-Kommentare zu erstellen.
Ich habe ein CommentsViewModel
public class CommentsViewModel
{
public CommentModel NewComment { get; set; }
public IList CommentsList { get; set; }
}
Die entsprechende Ansicht sieht so aus:
@Html.Partial("CommentsList", Model.CommentsList)
@using (Ajax.BeginForm("Create",
"Comment",
new { id = Model.NewComment.detailsId, comment = Model.NewComment },
new AjaxOptions { UpdateTargetId = "CommentsArea" ,
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace}))
{
Kommentar hinzufügen
@Html.EditorFor(model => Model.NewComment.Body)
}
Jetzt, wenn der Benutzer auf die Schaltfläche "Post" klickt, möchte ich, dass der "CommentsArea" mit der neuen Kommentarliste aktualisiert wird und auch die Formularwerte mit leerem Text gelöscht werden.
Hier ist die Post-Methode:
[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);
}
Jetzt, wenn der Benutzer auf die Schaltfläche "Post" klickt, wird die Liste ordnungsgemäß aktualisiert, aber die Formularwerte werden nicht gelöscht. d.h. Wenn ich einen Kommentar "Neue Kommentare" veröffentlicht habe, wird die Kommentarliste mit "Neue Kommentare" aktualisiert, aber dieser Text bleibt im Bearbeitungsfeld des Formulars erhalten.
Wie kann ich diesen Text löschen?