将对象的javascript数组发布到MVC4控制器

将对象的javascript数组发布到MVC4控制器,javascript,ajax,asp.net-mvc,asp.net-mvc-4,Javascript,Ajax,Asp.net Mvc,Asp.net Mvc 4,这是我的控制器操作: public ActionResult BrowsePartial(IList<SearchParam> searchParams = null) { //... } 以下是我如何向控制器发送数据: $.ajax( { type: "GET", url: url, data: { searchParams: [{ Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads"

这是我的控制器操作:

public ActionResult BrowsePartial(IList<SearchParam> searchParams = null)
{
   //...
}
以下是我如何向控制器发送数据:

$.ajax(
{
   type: "GET",
    url: url,
    data: { searchParams: [{ Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }, { Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }, { Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }] },
    mode: "replace",
    cache: false,
 });

现在,当我调试操作时,我有一个
IList
,它用3个元素正确初始化。但是,每个
SearchParam
对象(
Order
Type
Value
)的字段都初始化为空。这里可能有什么问题?

我认为,在单个请求中发送数组参数的唯一方法是对其进行字符串化,并在控制器中进行反序列化

$.ajax(
{
   type: "GET",
    url: url,
    data: { searchParams: JSON.stringify([{ Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }, { Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }, { Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }])},
    mode: "replace",
    cache: false,
 });


public ActionResult BrowsePartial(string searchParams = null)
{
    SearchParam params = JsonConvert.DeserializeObject<SearchParam>(searchParams);
}
$.ajax(
{
键入:“获取”,
url:url,
数据:{searchParams:JSON.stringify({Order:“fghfdhgfdgdgfd”,Type:“sasdsa”,Value:“saddsads”},{Order:“fghfdhgfdgdgfd”,Value:“saddsads”},{Order:“fghfdhgfdgdgfd”,Type:“sasdsa”,Value:“saddsadsas”}),
模式:“替换”,
cache:false,
});
public ActionResult BrowsePartial(字符串searchParams=null)
{
SearchParam params=JsonConvert.DeserializeObject(searchParams);
}

但我可能弄错了;)

您的数据应该是这样的:
data:{Order:“lala”,键入:“lala2”}
因此请删除
searchParams
和覆盖数组
[]
,但它必须是一个对象数组。没有一个物体!有什么方法可以实现吗?这是一个object literal=>看看你想要的方法,就是一次发送3个ajax请求。因此,您必须先处理阵列,然后发送3次。
$.ajax(
{
   type: "GET",
    url: url,
    data: { searchParams: JSON.stringify([{ Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }, { Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }, { Order: "fghfdhgfdgfd", Type: "sasdsa", Value: "saddsadsads" }])},
    mode: "replace",
    cache: false,
 });


public ActionResult BrowsePartial(string searchParams = null)
{
    SearchParam params = JsonConvert.DeserializeObject<SearchParam>(searchParams);
}