【问题标题】:ASP.NET MVC - Ajaxified RenderActionASP.NET MVC - Ajaxified RenderAction
【发布时间】:2010-03-03 19:17:38
【问题描述】:

我对 RenderAction() 函数的作用很满意。但是,我想在部分呈现的操作中对数据的加载和存储进行 ajaxify,以便一切都发生在一个页面中。

想象以下情况:我有一个文章详细信息视图,其中文章内容下方有一个“添加评论”链接。单击它时,评论表单将出现在帖子内容的下方。用户应该能够填写评论框,并在不刷新整个视图的情况下发送数据,而只是部分呈现的动作。此外,视图必须提供在同一会话中添加的多个 cmets(对 RenderAction() 的多个 AJAX 调用);

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: asp.net asp.net-mvc ajax renderaction


    【解决方案1】:

    行动:

    [HttpGet]
    public ActionResult AddComment()
    {
        return PartialView(); // presumes partial view is called "AddComment" and needs no model
                              // you know what to do otherwise.
    }
    

    查看:

    <input type="button" value="Add Comment" onclick="addComment()" />
    

    JavaScript:

    function addComment() {
        $("#comments").append("<div></div>").load("/ControllerName/AddComment");
    }
    

    这就是基础。您可以根据需要将其复杂化。

    【讨论】:

    • 提交 cmets 数据怎么样?在不刷新页面的情况下,这会发生在文章视图的“内部”吗?
    • 提交cmets数据,只需POST一个表单,同步或异步。如果你愿意的话,如果你把它放在你的部分中,你可以为每个评论创建一个表格。如果您不希望页面刷新,则 POST 异步表单并在 JavaScript 中更新页面(删除编辑器并添加带有注释的 div)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多