jquery - 在 Ajax Post 之后通过 jQuery 刷新 PartialView

标签 jquery asp.net-mvc asp.net-ajax

是否有人有特殊的方法可以将 jQuery Form ajax post 发送到 Controller 方法,强制刷新同一页面上现有的 PartialView?这是否涉及将部分 HTML 返回并附加,或者我可以简单地以某种方式导致 PartialView 神奇地刷新吗?

提前致谢。 道格

这是我的 RenderPartial,其形式如下...想要通过下面的 ajax 调用刷新 RenderPartial...

    <% Html.RenderPartial("p_Offers", Model.Offers); %>

<h2>Make an Offer</h2>
<form id="makeOffer" action="/post/makeoffer/<%=Model.Id %>" method="post">
    <div class="grid_2 alpha"><label>Comment</label></div>
    <div class="grid_6 omega"><%= Html.TextBox("Comment")%></div>

    <div class="grid_2 alpha"><label>Payment Terms</label></div>
    <div class="grid_6 omega"><%= Html.TextArea("PaymentTerms")%></div>

    <div class="grid_2 alpha"><label>Amount</label></div>
    <div class="grid_6 omega"><%= Html.TextBox("Amount")%></div>

    <div class="prefix_2">
        <label>Tentative <input type="radio" checked="checked" name="Confirmed" value="Tentative" /></label>
        <label>Confirmed <input type="radio" name="Confirmed" value="Confirmed" /></label>
    </div>

    <div class="prefix_2">
        <input type="submit" value="Make Offer" />
    </div>
</form>

这里是ajax调用......

        $(document).ready(function() {
        $('#makeOffer').ajaxForm(function() {
            var f = $("#makeOffer");
            var action = f.attr("#action");
            var serializedform = f.serialize();
            $.post(action,
                serializedform,
                function() {
                    alert("post error");
                });
            // TODO want to refresh Offers partial view  
            return false;
        });

        jQuery().ajaxStart(function() {
            $("#makeOffer").fadeOut("slow");
        });

        jQuery().ajaxStop(function() {
            $("#makeOffer").fadeIn("fast");
        });

最佳答案

如果将部分 View 包装在 div 中并返回部分 View 标记 您可以简单地使用 .post 回调来替换/附加新标记。

请注意,以下内容替换了整个部分标记。如果您想要的话,您可以轻松地将其更改为使用 .append()。

$.post(action,
       serializedform,
       function(html) {
          $('#viewWrapperDiv').html( html ); 
          //$('#viewWrapperDiv').append( html ); 
       }
);

关于jquery - 在 Ajax Post 之后通过 jQuery 刷新 PartialView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1074416/

相关文章:

asp.net-mvc - “不是虚拟路径”,下载文件时出错

asp.net - ASP.NET 页面上的倒数计时器

jquery - 使用 $.get 导入文件的一部分

jquery - 在窗口调整大小时删除和添加类

php - 使用 jquery 转发器时表单不发送输入字段

asp.net-mvc - 如何设置 webgrid 行样式内联

javascript - div1和div2在同一行时隐藏连接线

asp.net-mvc - 我在哪里放置我的 View 模型验证?

c# - IsPostBack Condition 的作用是什么?

asp.net - HttpContext 项目不可用于 AJAX 调用的 Web 方法