Как я могу передать ViewBag из контроллера в View (Ajax Url) - PullRequest
0 голосов
/ 29 июня 2019

** Код контроллера **

У меня есть код ниже в моем 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');
        }
    });
}

1 Ответ

2 голосов
/ 29 июня 2019

Это не то, как работает MVC. Вы не возвращаете представление из вашего метода действия. Вы возвращаете JSON. Таким образом, нет представления, связанного с методом действия. По сути, вы используете метод действия в качестве API и вызываете его из Javascript с использованием AJAX, который отличается от возврата и привязки представления из действия. Ваш ViewBag не будет доступен, потому что используемое здесь представление не отображается методом Action в вопросе.

...