Hallo
ich hänge gerade an einem Problem wo ich nicht weiß wie ich das lösen soll.
Verwendete Technologie: ASP .NET Core 2.2 Razor Pages
Ich habe eine Page. Auf dieser Page ist ein form. Im form gibt es 2 partial views, welche inputs enthalten.
Beide partial views haben je ein anderes Property des PageModel als Model, sind jedoch vom selben Datentyp.
Wird die Page angezeigt passt noch alles.
Im OnPost haben jedoch beide Properties des Page Models die selben Werte.
Wie löse ich das am besten?
Ich habe ja ein partial view weil ich keinen Code duplizieren will.
Zur besseren Veranschaulichung hier noch etwas Code:
Das PageModel:
public class Ship
{
public string Name { get; set; }
public string Crew { get; set; }
}
public class IndexModel : PageModel
{
[BindProperty]
public Ship FirstShip { get; set; }
[BindProperty]
public Ship SecondShip { get; set; }
public void OnGet()
{
FirstShip = new Ship
{
Name = "USS Enterprise",
Crew = "200-500"
};
SecondShip = new Ship
{
Name = "USS Voyager",
Crew = "150"
};
}
public void OnPost()
{
// FirstShip und SecondShip have the same values
}
}
Die Page:
@page
@model IndexModel
<form method="post">
<partial name="/Pages/_ShipEdit.cshtml" model="Model.FirstShip" />
<partial name="/Pages/_ShipEdit.cshtml" model="Model.SecondShip" />
<input type="submit" value="save" />
</form>
Das partial view "_ShipEdit.cshtml"
@model Ship
<div>
<label asp-for="Name"></label>
<input asp-for="Name" />
</div>
<div class="form-group">
<label asp-for="Crew"></label>
<input asp-for="Crew" />
</div>
Vielen Dank für eure Hilfe,
sg xan