簡體   English   中英

如何將ViewBag從控制器傳遞到View(Ajax Url)

[英]How can I pass a ViewBag from controller to View(Ajax Url)

**控制器代碼**

我的Controller和方法get_curent_LoanNumber包含以下代碼

public JsonResult (string loan_code)
{
    try
    {
        using (sqlConnection)
        {
            dynamic loanno = sqlConnection.Query("get_loan_number", new {loan_code }, 
            commandType: CommandType.StoredProcedure).SingleOrDefault();

            ViewBag.currentLoanNumbe= loanno.LoanNo;

            return Json(loanno, JsonRequestBehavior.AllowGet);
        }
    }
    catch (Exception)
    {
        throw;
    }
}

查看代碼這是代碼View中, JavaScript功能savePayslipInfo使Ajax請求。

 function () {

    console.log('@ViewBag.currentLoanNumbe');
    $.ajax({
        type: "POST",
        url: "http://localhost:1079/loanapplication/save_Payslip_Info/?loan_no" + '@ViewBag.currentLoanNumbe',
        data: {
            //loan_no: $(loan_no).val(),
            basic_salary: $("#basic_salary").val(),
            house_allowance: $("#house_allowance").val(),
            other_allowance: $("#other_allowance").val(),
            other_payment: $("#other_payment").val(),
            total_deduction: $("#total_deduction").val()
        },
        success: function () {
            $('#msg').html("Payslip info saved successfully").fadeIn('slow');
            $('#msg').delay(4000).fadeOut('slow');
        }
    });
}

這不是MVC的工作方式。 您沒有從操作方法返回視圖。 您正在返回JSON。 因此,沒有渲染視圖綁定到action方法。 您實際上要做的是將action方法用作API,並使用AJAX從Javascript調用它,這與從action返回和綁定視圖不同。 您的ViewBag將無法訪問,因為問題中的Action方法未呈現您正在使用的View。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM