Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Razor Pages - BindProperty mit gleichem Namen auf PartialViews haben nach Post die gleichen Werte
WarLorD_XaN
myCSharp.de - Member



Dabei seit:
Beiträge: 111
Herkunft: Austria

Themenstarter:

Razor Pages - BindProperty mit gleichem Namen auf PartialViews haben nach Post die gleichen Werte

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers