如何将多个javascript值发送到C#操作方法?

时间:2016-04-01 17:41:39

标签: javascript c# asp.net-mvc-5 asp.net-ajax

假设我在图像中有一些类似的javascript。在阵列中 我将(多个)值放在变量数组中并发送它 数组到控制器中的操作方法。但是,在动作方法中,我会将其作为对象来获取。如何从这个'对象中获取值?我更喜欢不使用ajax帖子。这可能吗?如果是的话,我该怎样抓住'动作方法中的值?

enter image description here

2 个答案:

答案 0 :(得分:1)

您应该使用data属性发送整数数组

var array = [1, 2, 4];    
$.ajax({
    url: '/Home/Items',
    type: 'POST',
    data:  { items: array },
    success: function(data) {
        console.log(data);
    }
});

假设你有一个像这样的行动方法来接收它

[HttpPost]
public ActionResult Items(int[] items)
{
    // to do  : do something with items
    return Json(items);
}

现在我看到你读取输入字段的值并将其用作数组变量的值。我不确定您在输入字段中具有什么样的值。如果它是逗号分隔的int列表(例如:" 1,3,5"),您可以使用split函数从中获取数组。

 var v = "2,5,78,8";
 var array = v.split(',');

答案 1 :(得分:0)

在Ajax调用中:

    var items = ['USA', 'UK', 'Canada'];
    $.ajax(
        {
            type: "POST",
            url: "/Test/Details",
            contentType: 'application/json',
            data: JSON.stringify({ function_param: items })
        });

在控制器中:

    public ActionResult Details(string[] function_param)

如果你不想使用Ajax调用,那么在html中创建一个输入类型隐藏控件并将javascript数组放到隐藏字段中并使用request.form [&]提交表单并在控制器中获取值#34; hiddencontrol"]

在JS中:

    $("#hiddenControl").val(JSON.stringify(items));