代码之家  ›  专栏  ›  技术社区  ›  griegs

ajax回发后部分视图未清除

  •  1
  • griegs  · 技术社区  · 14 年前

    我有奇怪的事情发生。

        public ActionResult jQueryAddComment(Comment comment)
        {
            if (ModelState.IsValid)
            {
                //do stuff here
                comment = new Comment();
            }
    
            return PartialView("AddNewComment", comment);
        }
    

    当我回到页面时,我的JS用新的部分视图中的html替换comments div的内容。

        function submitComment() {
            $.post('/Home/jQueryAddComment', { forumItemId: $('#id').val(), owner: $('#owner').val(), text: tinyMCE.get('text').getContent(), emailAddress: $('#emailAddress').val() }, function (result) {
                alert(result);
                $('.AddNewComment').html(result);
            });            
        }
    

    但是,当页面呈现值时,这些值会返回原位。我可以看到一个空模型被传递给视图,那么为什么我以前的值仍然存在呢?

    编辑

    我应该提到,我无法清除页面JS中的字段,因为我希望使用相同的代码来呈现错误和成功的请求。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Community Ian Goodfellow    7 年前

    在使用传递给帮助程序的值之前,标准的HTML帮助程序会在ModelState和ViewData中查找值。

    How to clear textboxes defined with MVC HTML helpers

        2
  •  4
  •   Adriano Carneiro    13 年前

    使用 ModelState.Clear()

    if (ModelState.IsValid)
    {
        //your save logic
    
        ModelState.Clear();
        comment = new Comment();
    }
    
    return PartialView("AddNewComment", comment);