将数组从javascript传递给c#

前端之家收集整理的这篇文章主要介绍了将数组从javascript传递给c#前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 javascript中有一个数组,我需要把它带到我的c#webMethod.做这个的最好方式是什么?

我的c#代码是这样的:

[WebMethod]
public static void SaveView(string[]  myArray,string[] filter)
{
}

编辑 –

我的json数据如下所示:

{"myArray":[{"name":"Title","index":"Title","hidden":false,"id":"1","sortable":true,"searchoptions":{"sopt":["cn","eq","bw","ew"]},"width":419,"title":true,"widthOrg":150,"resizable":true,"label":"Title","search":true,"stype":"text"},{"name":"Author","index":"Author","id":"3","label":"Author","stype":"text"}]}

但我不工作……任何想法为什么?

非常感谢你.

解决方法

您可以将其作为JSON字符串发送.这是使用jQuery的一个例子:
var array = [ 'foo','bar','baz' ];
$.ajax({
    url: '/foo.aspx/SaveView',type: 'POST',contentType: 'application/json',data: JSON.stringify({ myArray: array }),success: function(result) {

    }
});

如果您的Page Method返回了某些内容,则应该在success回调中使用result.d属性获取页面方法调用的结果.

如果您不使用jQuery,则必须手动考虑发送AJAX请求时的浏览器差异.但为了实现这一目标,请求中包含两个至关重要的事项:

> Content-Type请求标头必须设置为application / json
>请求有效负载应为JSON,例如:{myArray:[‘foo’,’bar’,’baz’]}

更新:

现在你已经更新了你的问题,似乎你不再愿意发送一个字符串数组.因此,定义一个与您发送的JSON结构相匹配的模型:

public class Model
{
    public string Name { get; set; }
    public string Index { get; set; }
    public bool Hidden { get; set; }
    public int Id { get; set; }
    public bool Sortable { get; set; }
    public SearchOption Searchoptions { get; set; }
    public int Width { get; set; }
    public bool Title { get; set; }
    public int WidthOrg { get; set; }
    public bool Resizable { get; set; }
    public string Label { get; set; }
    public bool Search { get; set; }
    public string Stype { get; set; }
}

public class SearchOption
{
    public string[] Sopt { get; set; }
}

然后:

[WebMethod]
public static void SaveView(Model[] myArray)
{
}
原文链接:https://www.f2er.com/js/156351.html

猜你在找的JavaScript相关文章