Я создаю приложение asp.net, где пользователи могут заказывать еду, и у меня также есть страница администратора, где администраторы могут войти и составить меню на определенную неделю.
Я решил все внутри этого «Создателя меню», и когда я нажимаю кнопку «Сохранить», каждое значение из меню переходит в массив javascript.
Так что к проблеме. Когда я нажимаю кнопку сохранения, я хочу сериализовать массив в json, чтобы затем передать его на мой контроллер mvc.
Я пытаюсь сделать это с помощью AJAX. Это полный код нажатия кнопки сохранения:
$("#CreateMenuBtn").on('click', function () {
FullMenu.push(
{
"Year": $("#YearInput").val(),
"Week": $("#WeekInput").val(),
"Products": MenuArray
}
);
var dataToPost = JSON.stringify({ methodParam: FullMenu });
$.ajax({
type: "POST",
url: '@Url.Action("Index", "Home")',
contentType: "application/json; charset=utf-8",
dataType: 'JSON',
data: dataToPost,
traditional: true
});
console.log(FullMenu);
});
Когда я сейчас отлаживаю и проверяю значение data
, оно совершенно верно и в формате JSON:
methodParam
[0]
Year: "2019"
Week: "4"
Products:
[0]
WeekDay: "Måndag"
Food: "kött"
Price: "54kr"
Cabinet: "C"
[1]
Weekday: "Onsdag"
Food: "Köttbullar"
Price: "80kr"
Cabinet: "B"
Теперь я хочу это на своем контроллере mvc.
У меня есть классы с именами Menu
и Product
, они выглядят так:
public class Menu
{
public int ID { get; set; }
public string Year { get; set; }
public string Week { get; set; }
public virtual List<Product> Products { get; set; }
}
public class Product
{
public int ID { get; set; }
public string Description { get; set; }
public int Price { get; set; }
public char Cabinet { get; set; }
public int MenuID { get; set; }
public int Day { get; set; }
}
Вот что я придумал в контроллере:
public IActionResult Index(List<Menu> methodParam)
{
foreach(Menu item in methodParam)
{
string des = item.Week + item.Year;
}
return View();
}
Но когда я отлаживаю внутри действия внутри цикла foreach, methodParam
получает значение 0.
Так что я хочу помочь с тем, как я могу получить массив в C #.
Я надеюсь, что это объясняет мою ситуацию, буду признателен за помощь.
Заранее спасибо!