Я делаю веб-приложение с ASP.net MVC.Вы можете посмотреть рецепты по адресу: / recipe
Проблема в том, что когда я добавляю рецепт в / recipe / create, он не работает.Я хочу, чтобы это отображалось на странице / рецепт. Страница рецепта
Так что я думаю, что что-то не так в контроллере или представлении, но я думаю, что это контроллер.
Вот код recipeController:
public class RecipeController : Controller
{
List<RecipeViewModel> vm = new List<RecipeViewModel>();
public IActionResult Index()
{
foreach (var recept in MockDataRecipeFactory.GetRecipes())
{
vm.Add(new RecipeViewModel
{
Id = recept.Id,
Name = recept.Name,
Category = recept.Category,
NumberOfIngredients = recept.Ingredients.Count
});
}
return View(vm);
}
public IActionResult Create()
{
return View();
}
[HttpPost]
public IActionResult Create(RecipeViewModel recipemodel)
{
vm.Add(new RecipeViewModel
{
Name = recipemodel.Name,
Id = recipemodel.Id,
Category = recipemodel.Category,
NumberOfIngredients = recipemodel.NumberOfIngredients
});
return RedirectToAction("Index");
}
Что я делаю, у меня есть список RecipeViewModel вверху, и я добавляю созданный элемент в этот список.
Вот RecipeViewModel:
public class RecipeViewModel
{
public int Id { get; set; }
[DisplayName("Naam")]
public string Name { get; set; }
[DisplayName("Categorie")]
public RecipeCategory Category { get; set; }
[DisplayName("Aantal")]
public int NumberOfIngredients { get; set; }
}
И вот форма в представлении:
<div class="row">
<div class="col-md-4">
<form asp-action="Create">
<div class="form-group">
<label asp-for="Id">Id:</label>
<input asp-for="Id" type="text" class="form-control" name="id" />
</div>
<div class="form-group">
<label asp-for="Name">Naam:</label>
<input asp-for="Name" type="text" class="form-control" name="name" />
</div>
<div class="form-group">
<label asp-for="Category">Categorie</label>
<select class="form-control" asp-for="Category">
<option value="0">none</option>
<option value="0">Cake</option>
<option value="0">Desert</option>
<option value="0">Sidedish</option>
<option value="0">Maincourse</option>
</select>
</div>
<div class="form-group">
<label asp-for="NumberOfIngredients">Aantal</label>
<input asp-for="NumberOfIngredients" type="number" class="form-control" name="number" />
</div>
<button type="submit" class="btn btn-primary">Voeg toe</button>
</form>
</div>
Поэтому, когда я добавляю рецепт, он возвращается на страницу рецепта, но не показывает добавленный рецепт.Что я делаю не так? Создать страницу рецепта