为什么我需要双击按钮以使JQuery呈现局部视图

时间:2012-05-02 02:21:50

标签: c# jquery asp.net-mvc-3 load asp.net-mvc-partialview

想知道为什么一次点击不加载,但是两次................................. ................................?

<input id="btnPaymentAdd" type="button" value="Add Payment Info" />
</p>
<div id="paymentSection"></div>
<br />    

....

$("#btnPaymentAdd").click(function () {
    $("#paymentSection").load('/Donation/AddPaymentInfo');
    $("#paymentSection").show('slow');
});

....

public ActionResult AddPaymentInfo()
{

    var vModel = new PaymentViewModel();
    vModel.Payment = new Payments();
    vModel.PaymentType = new WCCDentalApp.Models.PaymentType();

    ViewBag.PaymentTypes = new SelectList(dbEntities.PaymentTypes.OrderBy(pt => pt.PaymentTypeID),
    "PaymentTypeID", "PaymentType1", vModel.Payment.PaymentTypeID);

    return PartialView("PaymentPView", vModel);
}

1 个答案:

答案 0 :(得分:2)

您需要在页面加载后绑定.show()函数...

$("#btnPaymentAdd").click(function(){
    $("#paymentSection").load('/Donation/AddPaymentInfo', function(){
         $(this).show('slow');
    });
});

或者您可以使用.get(),如下所示:

$("#btnPaymentAdd").click(function(){
    $.get('/Donation/AddPaymentInfo', function(data){
         $("#paymentSection").html(data).show('slow');
    });
});

否则,您拥有它的方式就是在不等待页面加载的情况下执行.show(),这会使您认为点击它两次就可以了。