javascript - 将 javascript 对象数组发送到 MVC4 Controller

标签 javascript ajax asp.net-mvc asp.net-mvc-4

这是我的 Controller 操作:

public ActionResult BrowsePartial(IList<SearchParam> searchParams = null)
{
   //...
}

这是对象模型:

public class SearchParam
{
    public string Order { get; set; }
    public string Type { get; set; }
    public string Value { get; set; }
}

这是我向 Controller 发送数据的方式:

$.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<SearchParam>这是用 3 个元素正确初始化的。但是,每个 SearchParam 的字段对象( OrderTypeValue )被初始化为 null。这里可能出现什么问题?

最佳答案

我认为,在单个请求中发送数组参数的唯一方法是将其字符串化,然后在 Controller 中反序列化。

$.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);
}

但我可能错了;)

关于javascript - 将 javascript 对象数组发送到 MVC4 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23422787/

相关文章:

javascript - 我的 Angular 应用程序需要两列,但这些列的内容可能会根据路线的不同而有很大差异。如何设置我的组件?

javascript - 使用 React 渲染时如何访问现有的 dom 元素?

asp.net-mvc - Actionresult 与 JSONresult

javascript - 想要将javascript变量解析到mysql数据库

javascript - 在主(父)页面的 div 中加载 Ajax 结果

c# - 两个属性 asp.net mvc 之间条件的数据验证属性

c# - 在 MVC 中绑定(bind)对象数组

javascript - 字符串与node.js比较

javascript - 照片瀑布效果是 jQuery 中的 la Tumblr Mosaic Viewer?

javascript - $.ajax JSON 未在完成时传递值