我有这种情况:
带有2个选项卡的手风琴页面,其中一个包含付款方式列表,第二个包含订单,金额和总计(呈现为部分视图)的订单摘要.选择付款方式会导致重新计算订单总额,可能会收取额外费用等.
使用AJAX选择paymentmethod后显示新的ordersummary的推荐方法是什么?
进行AJAX调用并获取所有新的金额,订单行等,并使用JS设置这些值对我来说似乎效率低下.理想的情况是,如果我可以使用选定的payement方法进行AJAX调用,并且此调用将返回HTML,我可以使用它来替换旧的摘要.
在服务器上呈现部分视图并使用JSON返回它是不是很糟糕?这种情况的最佳做法是什么?
解决方法
在您的操作方法中,返回PartialView([视图名称]).
然后你可以用jquery做到这一点:
var req = $.ajax({ type:"GET",//or "POST" or whatever url:"[action method url]" }).success(function(responseData){ $('targetelement').append($(responseData));});
其中’targetelement’是您要向其中注入内容的元素的选择器.
你可能想做$(‘targetelement’).html(”);首先将响应附加到目标元素之前.
更新
或者,更好的是,从Rick的答案中使用.load.