在我的应用中,我有这个小方法:
$('#checkOut').click(function() {
$('#loading').show();
$.get("/Checkout/AdressAndPayment");
});
我想要的只是显示#loading
段:
<p id="loading" style="display: none" class="center">
Loading. Please wait... @Html.Image("~/Images/Functional/ajax-loader.gif", null, new {@class = "nullify"})
</p>
这样我的用户就知道该应用正在计算背景中的内容。
但我还需要在我的控制器方法中渲染一个全新的视图:
[HttpGet]
public ActionResult AdressAndPayment()
{
mOrder = new OrderInfo();
ShoppingCart cart = ShoppingCart.GetCart(HttpContext);
mOrder = cart.CreateOrder(mOrder);
return View(mOrder);
}
这不起作用。我的意思是,整个过程很顺利,如果我使用标准ActionLink
或带using (Html.BeginForm())
的按钮,它可以正常工作,但我想同时执行这两项操作:显示<p>
,然后得到视图。我怎么能这样做?
答案 0 :(得分:0)
我认为你必须使用.done回调
$.get("/Checkout/AdressAndPayment")
.done(function() {
makeViewCallinSomeWay();
});
你在使用Yii吗?
答案 1 :(得分:0)
也许不是最优雅的解决方案,但这就是我所做的:
首先,观点:
using (Html.BeginForm("AdressAndPayment", "Checkout", FormMethod.Get, new { id = "checkOut" }))
{
<input type="submit" value="Checkout >>"/>
}
然后是javascript:
$('#checkOut').click(function() {
$('#loading').show();
});
一切正常,因为我在开始时提交表格。但对于所有发表评论的人:我可以用回调来做整个视图,包括布局中的部分视图?