mvc3 как да изчистя изпратените стойности на формуляра

Нов съм в asp .net mvc3. Опитвам се да създам доста проста секция за коментари в блога.

Имам CommentsViewModel

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);
    }

Сега, когато потребителят щракне върху бутона Публикувай, списъкът се актуализира правилно, но стойностите на формуляра не се изчистват. т.е. ако съм публикувал коментар „Нови коментари“, списъкът с коментари се актуализира с „Нови коментари“, но този текст остава в полето за редактиране на формуляра.

Как да изчистя този текст?


person user1314939    schedule 05.04.2012    source източник


Отговори (1)


просто извикайте js функция при успешно изпращане на формуляр.

@using (Ajax.BeginForm("Create",
                   "Comment",
                   new { id = Model.NewComment.detailsId, comment = Model.NewComment },
                   new AjaxOptions { OnSuccess="ClearInput", HttpMethod = "Post",}))

на функцията js render create create view отново

function ClearInput(){
      //call action for render create view
      $.ajax({})
}
person Yorgo    schedule 05.04.2012
comment
тази връзка също обяснява: gbogea.com/2008 /11/26/ajax-beginform-clear-form-after-submit - person user1314939; 05.04.2012