В ASP.NET MVC 3 мне не повезло, когда я пытался отправить данные JSON на мой контроллер.
Я перебираю список и генерирую объекты JSON из элементов, а затем отправляю их вместе с моим параметром запроса:
$.each(addedIngredients.find('li'), function () {
ingredients[count] = {
ID: $(this).attr('id').split('_')[1],
Name: $(this).attr('id').split('_')[0]
};
count++;
});
request = $.ajax({
url: '/Ingredients/SearchIngredients',
data: {
q: q,
ingredients: ingredients
},
dataType: 'json',
type: 'POST',
success: function (result) {
//Code omitted
},
error: function () {
//Code omitted
}
});
На контроллере у меня есть
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult SearchIngredients(string q, JSONIngredient[] ingredients)
{
//Initialise model
List<JSONIngredient> model = new List<JSONIngredient>();
//Add items to list
ir.GetIngredients(q).ToList().ForEach(i => model.Add(new JSONIngredient(i)));
//Return model as JSON object
return this.Json(model);
}
Где JSONingredient -
public class JSONIngredient
{
public int ID { get; set; }
public string Name { get; set; }
public JSONIngredient()
{
}
public JSONIngredient(Ingredient Ingredient)
{
this.ID = Ingredient.ID;
this.Name = Ingredient.Name;
}
}
Который я придумал, потому что думал, что моя обычная модель с дополнительными свойствами, которых нет в JSON, вызывала проблему, но я бы подумал, что если бы она работала, она бы работала с моей нормальной моделью ...
Я думаю, что, возможно, формат, в котором я отправляю данные, неверен. Изучение запроса в firefox show:
Parametersapplication / х-WWW-форм-urlencoded
ингредиенты [0] [ID] 4
ингредиенты [0] [Имя] Вода
q sug
Источник
д = SuG & ингредиенты,% 5B0% 5D% 5BName% 5D = Вода и ингредиенты% 5B0% 5D% 5BID% 5D = 4
Любая помощь будет принята с благодарностью.