这是我的 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
的字段对象( Order
、 Type
和 Value
)被初始化为 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/