Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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/ionic-framework/2.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
C# 将ViewBag(具有int类型的列表)传递给控制器_C#_Jquery_Asp.net Mvc_Jquery Ui Dialog - Fatal编程技术网

C# 将ViewBag(具有int类型的列表)传递给控制器

C# 将ViewBag(具有int类型的列表)传递给控制器,c#,jquery,asp.net-mvc,jquery-ui-dialog,C#,Jquery,Asp.net Mvc,Jquery Ui Dialog,我试图在jquery加载时将int类型的列表传递给控制器,但未成功。 这是我的密码: function Addcov() { var dt = '@ViewBag.dt'; @{ List<int> covtypes = new List<int>(); foreach (var item in ViewBag.CovTypes) { covtypes.Add(item);

我试图在jquery加载时将int类型的列表传递给控制器,但未成功。 这是我的密码:

function Addcov() {
    var dt = '@ViewBag.dt';
    @{
        List<int> covtypes = new List<int>();
        foreach (var item in ViewBag.CovTypes)
        {
            covtypes.Add(item);
        }
    }
    alert('@covtypes');

    $("#Form").dialog({
         autoOpen: true,
         width: 1000,
         resizable: false,
         title: 'Add',
         modal: true,
         open: function () {
             $(this).load(
                 '../controller/AddAction', 
                 { fromDate: dt, CovTypes: JSON.stringify('@covtypes') },
                 function (response, status, xhr) {});
             },
             buttons: {}
        });
    }
函数Addcov(){
var dt='@ViewBag.dt';
@{
列表类型=新列表();
foreach(ViewBag.CovTypes中的变量项)
{
添加(项目);
}
}
警报(“@covtypes”);
$(“#表单”)。对话框({
自动打开:对,
宽度:1000,
可调整大小:false,
标题:“添加”,
莫代尔:是的,
打开:函数(){
$(此)。加载(
“../controller/AddAction”,
{fromDate:dt,CovTypes:JSON.stringify('@CovTypes')},
功能(响应、状态、xhr){};
},
按钮:{}
});
}

我可能看到了您的问题,路径。调试并确保所传递的路径正确,并且数据实际上是通过CovType传递的

我在这里看到的主要问题是路径,它没有正确地传递。
尝试完整路径,看看会发生什么

我可能会看到你的问题,路径。调试并确保所传递的路径正确,并且数据实际上是通过CovType传递的

我在这里看到的主要问题是路径,它没有正确地传递。
尝试完整路径,看看会发生什么

如果您已经在控制器上编写了调用方法,这将很有帮助,但是在您的情况下,您正在发送一个
Get
请求,因此,您可能会指出该值来自URI,如下所示:

public ActionResult AddAction(object fromDate, [FromUri] List<int> arr)
public ActionResult AddAction(object fromDate,[FromUri]List arr)

如果您已经在控制器上编写了调用方法,这将很有帮助,但是在您的情况下,您正在发送一个
Get
请求,因此,您可能会指示此值来自URI,如下所示:

public ActionResult AddAction(object fromDate, [FromUri] List<int> arr)
public ActionResult AddAction(object fromDate,[FromUri]List arr)

我可以建议将ViewBag[List of int]的值作为csv放在html元素中,然后将它们转换为int数组并作为csv传递给控制器

<input type="hidden" id="list" value="@ViewBag.CovTypes.Aggregate((x,y)=>x+","+y)" />

function Addcov() {
 var data=$("#list").val().split(",")map(function(i,e){   return parseInt(e);          });

$("#Form").dialog({
     autoOpen: true,
     width: 1000,
     resizable: false,
     title: 'Add',
     modal: true,
     open: function () {
         $(this).load(
             '../controller/AddAction', 
             { fromDate: dt, CovTypes:JSON.stringify(data) },
             function (response, status, xhr) {});
         },
         buttons: {}
    });
 }

函数Addcov(){
var data=$(“#list”).val().split(“,”)map(函数(i,e){return parseInt(e);});
$(“#表单”)。对话框({
自动打开:对,
宽度:1000,
可调整大小:false,
标题:“添加”,
莫代尔:是的,
打开:函数(){
$(此)。加载(
“../controller/AddAction”,
{fromDate:dt,CovTypes:JSON.stringify(data)},
功能(响应、状态、xhr){};
},
按钮:{}
});
}

我可以建议将ViewBag[List of int]的值作为csv放在html元素中,然后将它们转换为int数组并作为csv传递给控制器

<input type="hidden" id="list" value="@ViewBag.CovTypes.Aggregate((x,y)=>x+","+y)" />

function Addcov() {
 var data=$("#list").val().split(",")map(function(i,e){   return parseInt(e);          });

$("#Form").dialog({
     autoOpen: true,
     width: 1000,
     resizable: false,
     title: 'Add',
     modal: true,
     open: function () {
         $(this).load(
             '../controller/AddAction', 
             { fromDate: dt, CovTypes:JSON.stringify(data) },
             function (response, status, xhr) {});
         },
         buttons: {}
    });
 }

函数Addcov(){
var data=$(“#list”).val().split(“,”)map(函数(i,e){return parseInt(e);});
$(“#表单”)。对话框({
自动打开:对,
宽度:1000,
可调整大小:false,
标题:“添加”,
莫代尔:是的,
打开:函数(){
$(此)。加载(
“../controller/AddAction”,
{fromDate:dt,CovTypes:JSON.stringify(data)},
功能(响应、状态、xhr){};
},
按钮:{}
});
}

那么问题出在哪里?你把Razor代码(服务器端)和javascript(客户端)搞混了。两者之间没有直接的互动。您可以使用Razor生成javascript——查看呈现页面的源代码,以查看将运行的代码。下面是如何操作的。那么问题是什么呢?你把Razor代码(服务器端)和javascript(客户端)搞混了。两者之间没有直接的互动。您可以使用Razor生成javascript——查看呈现页面的源代码,以查看将运行的代码。下面是如何操作的。那么问题是什么呢?你把Razor代码(服务器端)和javascript(客户端)搞混了。两者之间没有直接的互动。您可以使用Razor生成javascript——查看呈现页面的源代码,以查看将运行的代码。下面是如何操作的。路径是正确的,发布到“fromDate”的数据是有效的,但“covtypes”发布为--System。[List.Int32…当然不是实际的列表!因为您的列表是List covtypes=new List();列表中没有数据,但有int!因此列表包含System的数据。[List.Int32]。您需要传递值而不是int。编辑:请注意,您还将“@covtypes”字符串化,以便json看到列表,但不查看foreach值。因此,您得到的结果是:System。[list.Int32]路径正确,传递到“fromDate”的数据有效,但“covtypes”传递为--System。[List.Int32…但当然不是实际的列表!因为您的列表是List covtypes=new List();列表中没有数据,但有一个int!因此列表包含系统的数据。[List.Int32]。您需要传递值而不是int。编辑:请注意,您还将“@covtypes”字符串化,以便json看到列表,但不查看foreach值。因此,您得到的结果是:System。[list.Int32]路径正确,传递到“fromDate”的数据有效,但“covtypes”传递为--System。[List.Int32…但当然不是实际的列表!因为您的列表是List covtypes=new List();列表中没有数据,但有一个int!因此列表包含系统的数据。[List.Int32]。您需要传递值而不是int。编辑:请注意,您还将“@covtypes”字符串化,以便json看到列表,但不查看foreach值。因此,您得到的回报是:System。[list.Int32]