Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将ViewBag从控制器传递到视图(Ajax Url)_Javascript_C#_Json_Viewbag - Fatal编程技术网

Javascript 如何将ViewBag从控制器传递到视图(Ajax Url)

Javascript 如何将ViewBag从控制器传递到视图(Ajax Url),javascript,c#,json,viewbag,Javascript,C#,Json,Viewbag,**控制器代码** 我的控制器中有以下代码和方法获取当前贷款编号 public JsonResult (string loan_code) { try { using (sqlConnection) { dynamic loanno = sqlConnection.Query("get_loan_number", new {loan_code }, commandType: CommandType.

**控制器代码**

我的
控制器中有以下代码
和方法
获取当前贷款编号

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;
    }
}
查看代码 这是
视图中的代码,
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将无法访问,因为您在此处使用的视图不是由问题中的操作方法呈现的。

这不是MVC的工作方式。您没有从操作方法返回视图。您正在返回一个JSON。因此,不存在与action方法关联的视图。实际上,您所做的是将action方法用作API,并使用AJAX从Javascript调用它,这与从action返回和绑定视图不同。您的ViewBag将无法访问,因为您在此处使用的视图未通过问题中的操作方法呈现。

如果您返回JSON,则不需要使用
ViewBag
。相反,您需要的数据必须在JSON负载本身中。因此,将其合并到
loanno
中。您的viewbag包含loanno中的值。但是您已经将loanno返回到AJAX调用,因此viewbag不包含您尚未提供的任何信息。你不需要它。这也没有任何意义……返回视图时使用viewbag,但这里返回的是JSON,而不是视图。如果返回JSON,则不需要使用
viewbag
。相反,您需要的数据必须在JSON负载本身中。因此,将其合并到
loanno
中。您的viewbag包含loanno中的值。但是您已经将loanno返回到AJAX调用,因此viewbag不包含您尚未提供的任何信息。你不需要它。这也没有任何意义…返回视图时使用viewbag,但这里返回的是JSON,而不是视图。那么在这种情况下,我将如何实现我的目标@Shahzad@CheruiyotAKirui要么将数据与返回的JSON一起传递,或者让该操作返回一个视图,然后您可以使用Viebbag及其值。我不希望我的页面被重新加载,正如您所看到的,我已经返回了json格式的loanno。这给了我结果,所以我的问题是,当我在第二个选项卡中时,我想使用返回的loanno(它在部分视图中)将数据插入到另一个表中。所以我试着使用Viewbag,我认为它仍然保持我的价值。@CheruiyotAKirui
Viewbag
是根据http请求的,所以
我认为它仍然保持我的价值
不是真的。它无法保存它。@CheruiyotAKirui您可以通过返回视图来加载主页。如果您需要,请使用Viewbag返回您的数据。然后使用AJAX和从Action方法返回JSON加载所有选项卡的选项卡数据。这样,返回视图的基本操作可以向您传递数据,即loand number,您不必在tab开关上重新加载页面。那么在这种情况下,我将如何实现我的目标@Shahzad@CheruiyotAKirui要么将数据与返回的JSON一起传递,或者让该操作返回一个视图,然后您可以使用Viebbag及其值。我不希望我的页面被重新加载,正如您所看到的,我已经返回了json格式的loanno。这给了我结果,所以我的问题是,当我在第二个选项卡中时,我想使用返回的loanno(它在部分视图中)将数据插入到另一个表中。所以我试着使用Viewbag,我认为它仍然保持我的价值。@CheruiyotAKirui
Viewbag
是根据http请求的,所以
我认为它仍然保持我的价值
不是真的。它无法保存它。@CheruiyotAKirui您可以通过返回视图来加载主页。如果您需要,请使用Viewbag返回您的数据。然后使用AJAX和从Action方法返回JSON加载所有选项卡的选项卡数据。这样,返回视图的基本操作可以向您传递数据,即loand number,并且您不必在tab开关上重新加载页面。