Я должен передать массив фильтров, как это:как получить доступ к Javascript многомерный массив в контроллере MVC
Script Код:
return { CustomFilter: options.filter.filters };
++++++++++++++ ++++++++++++++++++++++++++++++++++
От Firebug:
CustomFilter[0][field] ItemName
CustomFilter[0][operator] startswith
CustomFilter[0][value] testing Value
CustomFilter[1][field] BrandName
CustomFilter[1][operator] startswith
CustomFilter[1][value] testing Value 1
Опубликовано значения :
Но я не могу получить их на стороне контроллера.
я попытался так:
public ActionResult ReadOperation(string[][] CustomFilter)
Кроме того, как это:
public ActionResult ReadOperation(Filter[] CustomFilter)
public class Filter
{
public string field { get; set; }
public string @operator { get; set; }
public string value { get; set; }
}
Но не получилось. Пожалуйста, предложите.
Спасибо.
Решение найдено с Json десериализации
код сценария изменен:
return { CustomFilter: JSON.stringify(CustomFilter) };
контроллер код изменен:
using Newtonsoft.Json;
public ActionResult ReadOperation(MyViewModel model)
{
var filters = JsonConvert.DeserializeObject(model.CustomFilter, typeof(CustomFilter[]));
}
public class MyViewModel
{
public string Filter { get; set; }
public string group { get; set; }
public int page { get; set; }
public int pageSize { get; set; }
public int sort { get; set; }
}
public class CustomFilter
{
public string field { get; set; }
public string @operator { get; set; }
public string value { get; set; }
}
Результат Показать в контроллере:
Содержит ли ваш код вообще? –
Да, он также показывает счет 2, поскольку я пропускаю 2 фильтра, но значения поля, оператора и значения показывают нуль. – Gerry
Можете ли вы опубликовать необработанный JSON? Firebug должен показать, что отправлено. –