Я работаю над веб-приложением, где вы можете хранить то, что у вас есть в вашем магазине. Но когда я нажимаю «отправить», предыдущий список не отображается в отправленной форме.
Все остальное в информации находится в модели представления.
Любая помощь приветствуется
Вот мой код
INDEX.CS HTML
@{
ViewData["Title"] = "Home Page";
}
@model WebApp.Models.Item;
<div class="text-center">
<h1 class="display-4">Stock manager</h1>
<form asp-controller="Home" asp-action="AddItem" method="post">
<label>Naam</label>
<input type="text" asp-for="Name" name="Name" />
<label>Aantal</label>
<input type="number" asp-for="Aantal" name="Aantal" />
<label>Beschrijving</label>
<input type="text" asp-for="Beschrijving" name="Beschrijving" />
<input type="submit" value="toevoegen" />
<h1 class="display-4">Stock list</h1>
@if (Model.Stock != null)
{
<ul>
@for (int idx = 0; idx < Model.Stock.Count; idx++)
{
<li>
@Html.HiddenFor(Model.Stock[idx].Name)
@Html.HiddenFor(Model.Stock[idx].Aantal)
@Html.HiddenFor(Model.Stock[idx].Beschrijving)
<h3>@Model.Stock[idx].Name</h3>
<p>Aantal: @Model.Stock[idx].Aantal</p>
<p>Beschrijving: @Model.Stock[idx].Beschrijving</p>
</li>
}
</ul>
}
else
{
<span>Nog niets toegevoegd</span>
}
</form>
</div>
HOMECONTROLLER.CS
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using WebApp.Models;
namespace WebApp.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public List<Item> items;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
Item item = new Item();
return View(item);
}
public IActionResult AddItem(Item item)
{
if (item.Stock == null)
{
item.Stock = new List<Item>();
}
item.Stock.Add(new Item
{
Name = item.Name,
Aantal = item.Aantal,
Beschrijving = item.Beschrijving
});
return View("Index",item);
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
ITEM.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace WebApp.Models
{
public class Item
{
public string Name { get; set; }
public int Aantal { get; set; }
public string Beschrijving { get; set; }
public List<Item> Stock { get; set; }
}
}
Это школьный проект в связи с окончанием выходных, поэтому я немного волнуюсь, плюс еще есть какие-то юнит-тесты.
Спасибо!
RAW HTML после добавления 2 предметов
<div class="text-center">
<h1 class="display-4">Stock manager</h1>
<form method="post" action="/Home/AddItem">
<label>Naam</label>
<input type="text" name="Name" id="Name" value="test" />
<label>Aantal</label>
<input type="number" name="Aantal" data-val="true" data-val-required="The Aantal field is required." id="Aantal" value="3" />
<label>Beschrijving</label>
<input type="text" name="Beschrijving" id="Beschrijving" value="test" />
<input type="submit" value="toevoegen" />
<h1 class="display-4">Stock list</h1>
<ul>
<li>
<h3>test</h3>
<p>Aantal: 3</p>
<p>Beschrijving: test</p>
</li>
</ul>
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8KvM1zMUD4ZOqfaYG4a2bsBumYriiijPssoEk30unaH30LZcWhGlluH47isCWUR2P-tDvQNQWZgxgHJRhqHf_2SyfcRI80clCL3fvM0hETtZ43eiWokSS3vId3OQe-P8rP1jBe5RWYyt8n9UB9yPjaI" /></form>
</div>