myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Web-Technologien » Razor Pages - BindProperty mit gleichem Namen auf PartialViews haben nach Post die gleichen Werte
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

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

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
WarLorD_XaN WarLorD_XaN ist männlich
myCSharp.de-Mitglied

Dabei seit: 25.10.2006
Beiträge: 93
Entwicklungsumgebung: Visual Studio
Herkunft: Austria


WarLorD_XaN ist offline

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

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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:

C#-Code:
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:

XML-Code:
@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"

XML-Code:
@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
01.12.2019 21:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 07.12.2019 18:17