在api中发送n个参数(aspnet core)

时间:2018-02-01 11:43:01

标签: c# asp.net-core asp.net-core-webapi asp.net-core-mvc-2.0

我正在尝试调用aspnet核心中的Web API 问题是,参数的数量在此不固定。参数可以是2或10(参数没有在0到15之间,一个猜测) 下面是JS代码

$(function () {
            $('#btn').click(function () {
                var src = [
                    {
                        "Question1": "Answer1",
                        "Question2": "Answer2",
                        "Question3": "Answer3",
                        "Question4": "Answer4",
                        "Question5": "Answer5"
                    }
                ];
                $.ajax(
                    {
                        url: 'api/Default/',
                        method: 'POST',
                        dataType: 'JSON',
                        data: JSON.stringify(src),
                        contentType: "application/json",
                        success: function (d) {
                            alert("Success");
                        },
                        error: function (e) {
                            alert("Error please try again");
                        }
                    });
            })
        })

和API

[Produces("application/json")]
[Route("api/Default/")]
public class DefaultController : Controller
{
    [HttpPost]
    public JsonResult apc(string [][] s)
    {
        string str;
        //Code Here
        return Json(true);
    }
}

我还尝试添加一个类列表作为参数而不是字符串数组

public class param
{
    public string key { get; set; }

    public string Value { get; set; }
}

但参数值始终为null。 我在MVC5中使用了相同的概念,它在那里工作得很好,但在.Net Core中不起作用 我们怎样才能在这里发送多个参数?

2 个答案:

答案 0 :(得分:1)

由于要发布的数据的动态特性,您可以使用Dictionary

数组
[Produces("application/json")]
[Route("api/Default/")]
public class DefaultController : Controller {
    [HttpPost]
    public JsonResult apc([FromBody]Dictionary<string,string>[] data) {
        var value = data[0]["Question1"]; // Should be "Answer1"
        //Code Here
        return Json(true);
    }
}

答案 1 :(得分:0)

尝试将JSON作为字符串发送并发送,如下所示:

 [HttpPost]
public JsonResult apc(string s)
{
    string str;
    //Code Here
    return Json(true);
}

然后从.NET端处理json