Я пытаюсь создать ASP Базовое приложение с Razorpages.
Пока все работает нормально, но теперь я застрял с этой проблемой:
Я хочу создать форма с несколькими кнопками на основе Objectarray. Каждая кнопка имеет свое собственное имя и должна вызывать один и тот же метод OnPost. Все идет нормально. Я борюсь с размещением правильного Объекта с формой.
Вот код ...
Test.cs html:
@page
@using APP.Models
@model TestModel
@{
ViewData["Title"] = "Test";
Layout = "~/Pages/Shared/_Layout.cshtml";
var bereiche = Bereich.getBereiche();
}
<div class="grid">
<h1 class="center-text">@ViewData["Title"]</h1>
<form method="post" class="center">
<div class="form-group">
<label asp-for="Model" class="col-form-label"></label>
<div class="button-group-vertical">
@for (var i = 0; i < bereiche.Count; i++)
{
<input type="hidden" asp-for="Model" value="@bereiche[i]" />
<button class="btn btn-info btn-md button-group-vertical-item">@bereiche[i].name</button>
}
</div>
</div>
</form>
</div>
Bereich.cs в пространстве имен Модель
public enum Art
{
Mitte, Beladen, Inspection, Kette
}
public class Bereich
{
public string name { get; set; }
public Art art { get; set; }
public static List<Bereich> getBereiche()
{
var bereiche = new List<Bereich>
{
new Bereich() { name="Mitte", art = Art.Mitte},
new Bereich(){name= "Beladen",art = Art.Beladen },
new Bereich(){name = "Qualitätskontrolle",art = Art.Inspection},
new Bereich(){name ="Kette",art= Art.Kette}
};
return bereiche;
}
}
Test.cs html .cs:
public class TestModel : PageModel
{
[DisplayName("Bereich")]
[BindProperty]
public Bereich Model { get; set; }
public void OnGet()
{
}
public IActionResult OnPost()
{
return Page(); // BREAKPOINT HERE -> MODEL always "art=Mitte", "name=null" :/
}
}
Кто-нибудь знает, что я не так делаю?