POST-запрос не работает в ASP, ничего не происходит - PullRequest
0 голосов
/ 16 мая 2019

Мой почтовый запрос не работает. Когда я пытаюсь отправить его после редактирования полей формы, поля формы возвращаются к исходным значениям, и ничего не происходит. Ожидаемое поведение - после отправки приложение должно перенаправить на другую страницу и отобразить отредактированные значения.

Это код моего контроллера:

[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);
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...