使用AJAX的ASP.NET MVC加载页面

jaa*_*aap 6 asp.net ajax asp.net-mvc

我有这种情况:

带有2个选项卡的手风琴页面,其中一个包含付款方式列表,第二个包含订单,金额和总计(呈现为部分视图)的订单摘要.选择付款方式会导致重新计算订单总额,可能会收取额外费用等.

使用AJAX选择paymentmethod后显示新的ordersummary的推荐方法是什么?

进行AJAX调用并获取所有新的金额,订单行等,并使用JS设置这些值对我来说似乎效率低下.理想的情况是,如果我可以使用选定的payement方法进行AJAX调用,并且此调用将返回HTML,我可以使用它来替换旧的摘要.

在服务器上呈现部分视图并使用JSON返回它是不是很糟糕?这种情况的最佳做法是什么?

ric*_*ott 9

我在这里有一个例子:

使用Javascript

$("#divForPartialView").load("/HelloWorld/GetAwesomePartialView",
   { param1: "hello", param2: 22}, function () {
   //do other cool client side stuff
});
Run Code Online (Sandbox Code Playgroud)

控制器动作

public ActionResult GetAwesomePartialView(string param1, int param2)
{
    //do some database magic
    CustomDTO dto = DAL.GetData(param1, param2);

    return PartialView("AwesomePartialView",dto);
}
Run Code Online (Sandbox Code Playgroud)


And*_*tan 2

在您的操作方法中返回一个PartialView([view name]).

然后你可以用 jquery 来做到这一点:

var req = $.ajax({
  type:"GET",//or "POST" or whatever
  url:"[action method url]"
  }).success(function(responseData){
    $('targetelement').append($(responseData));});
Run Code Online (Sandbox Code Playgroud)

其中'targetelement'是要向其中注入内容的元素的选择器。

$('targetelement').html('');在将响应附加到目标元素之前,您可能需要先执行此操作。

更新

或者,更好的是,使用.loadRick 的答案。