Данные отправления, передаваемые через поле данных метода ajax, должны быть парными значениями. Asp.Net будет отображать их в коллекции запросов Params через их имя. Например. если вы разместите объект, как это,
{
fileNames: JSON.stringify(arFileNames)
};
Это могут быть доступны на стороне сервера с помощью,
string json = HttpContext.Current.Request.Params["fileNames"];
Если ваш JSON выглядит примерно так,
"{"filenames":["somefile","somefile2","somefile3"]}"
Вы можете использовать newtonsoft JSON (JSON.Net), чтобы преобразовать его в список строк by creatong для его представления,
public class JsonResultFileNames
{
[Newtonsoft.Json.JsonProperty(PropertyName = "filenames")]
public string[] FileNames { get; set; }
}
Затем преобразовать JSON в JsonResultFileNames с,
JsonResultFileNames jsonResult = Newtonsoft.Json.JsonConvert.DeserializeObject<JsonResultFileNames>(jsonStringHere);
Тогда у вас есть C# объект, представляющий данные JSON. Кроме того, вы можете усложниться с этим, но важно отметить JSON.Net, это довольно буквально десериализуется в представление C#. Например. если вы хотите десериализовать прямо в массив строк, тогда в вашем json должен быть только массив строк (имена объектов/полей и т. д.).
E.g. где я работаю, у нас есть api, который возвращает результаты, подобные этому,
{ status: { статус: true; }, customerdata { идентификатор: {некоторые-справ}, Имя: Некоторые Имя клиента }}
Проблема с этим, мой C# класс должен состоять из вложенных классов, например, Мне нужен класс для представления статуса и класса для представления данных клиента. Когда вы делаете это, вы можете получить странное наименование мудрости, у меня появились такие вещи, как CustomerResponse, CustomerResponseStatus, CustomerResponseData, где CustomerResponseStatus и CustomerResponseData отображаются в CustomerRespnose, и я десериализую json для типа CustomerResponse.
Если ваш json - это всего лишь массив строк, вы можете использовать строку [] для типа, переданного в JsonConvert.Deserialize, что не потребует от вас создания классов ответов для хранения данных.
что пусто? параметр filenames или код вашего контроллера? – RandomUs1r
К сожалению, код метода контроллера пуст. – scapegoat17
Итак, если имена файлов имеют значения, которые вы сделали, нет? имена файлов уже имеют список типов, - это тип списка в этом списке. Я беру filesObj - это просто строка имен JSON без каких-либо свойств или атрибутов. Чтобы работать с вашим списком, просто манипулируйте именами файлов. –
RandomUs1r