Мой почтовый запрос не работает. Когда я пытаюсь отправить его после редактирования полей формы, поля формы возвращаются к исходным значениям, и ничего не происходит. Ожидаемое поведение - после отправки приложение должно перенаправить на другую страницу и отобразить отредактированные значения.
Это код моего контроллера:
[Route("Cheese/Edit/{id}")]
public IActionResult Edit(int id)
{
Cheese cheeseToEdit = CheeseData.GetById(id);
ViewBag.cheese = cheeseToEdit;
return View();
}
[HttpPost]
[Route("/Cheese/Edit")]
public IActionResult Edit(int cheeseId, string name, string description)
{
CheeseData.Edit(cheeseId, name, description);
return Redirect("/Cheese");
}
Это код из формы:
<h1>Edit Cheese</h1>
<form method="post">
<div class="form-group">
<label for="name">Name</label>
<input class="form-control" name="name" id="name" type="text" value="@ViewBag.cheese.Name" />
</div>
<div class="form-group">
<label for="description">Description</label>
<input class="form-control" name="description" id="description" type="text" value="@ViewBag.cheese.Description" />
</div>
<div class="form-group">
<input type="hidden" class="form-control" name="cheeseId" id="cheeseId" value="@ViewBag.cheese.CheeseId" />
</div>
<input type="submit" value="Add Cheese" />
</form>
Это код из класса CheeseData, который содержит метод Edit, который используется в методе редактирования сообщения
public class CheeseData
{
static private List<Cheese> cheeses = new List<Cheese>();
//GetAll
public static List<Cheese> GetAll()
{
return cheeses;
}
//Add
public static void Add(Cheese newCheese)
{
cheeses.Add(newCheese);
}
//Remove
public static void Remove(int id)
{
Cheese cheeseToRemove = GetById(id);
cheeses.Remove(cheeseToRemove);
}
public static void Edit(int id, string name, string description)
{
int index = CheeseData.GetAll().FindIndex(m => m.CheeseId == id);
cheeses[index].Name = name;
cheeses[index].Description = description;
}
//GetById
public static Cheese GetById(int id)
{
//this is linq method syntax. the Single method returns the one object from the
//list that matches the criteria
return cheeses.Single(x => x.CheeseId == id);
}
}