有没有人有一个特殊的酱汁跟随jQuery Form ajax帖子到控制器方法强制刷新到同一页面上存在的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");
});
答案 0 :(得分:1)
如果将局部视图包装在div中并返回局部视图标记 您只需使用.post回调来替换/追加新标记。
请注意,以下内容将替换整个部分标记。您可以轻松地将其更改为使用.append(),如果这是您想要的。
$.post(action,
serializedform,
function(html) {
$('#viewWrapperDiv').html( html );
//$('#viewWrapperDiv').append( html );
}
);