2017-12-15 6 views
0

Ich erbte eine asp.net Webformular-Anwendung. Jetzt, wenn ich versuche, ein neues Feature hinzuzufügen. Ich traf den folgenden Halt:Wie ein Teil der Formularwerte zu einem Modell in asp.net Webformular zu binden

Ich erstellte ein Formular, um Daten vom Endbenutzer zu erhalten, und die Daten gehen in zwei Tabellen in der Datenbank.

Ich verwendete Entity Framework für die Kommunikation mit der Datenbank.

Meine Frage ist, weil die Formulardaten in zwei Modelle (zwei Tabellen) gehen müssen, kann ich ein Modell an einen Teil der Formulardaten binden? Oder gibt es keine Möglichkeit, das zu tun, muss ich alle Formulardaten durchlaufen und sie den Modelleigenschaften zuweisen?

zum Beispiel Datenmodell

class ModelA{ 
    public int ModelAID {get;set;} 
    public string ModelAName {get;set;} 
} 
class ModelB{ 
    public int ModelBID {get;set;} 
    public string ModelBName{get;set;} 
} 

Frontend Seite wäre wäre

<form> 
    <input name="Aid"/> 
    <input name="AName"/> 
    <input name="Bid"/> 
    <input name="BName"/> 
</form> 

Code behide

Antwort

0

Welche Version wäre verwenden Sie? Ich entwickle in Web Forms 4.5, und ich habe mit dem ähnlichen Problem gelitten.

Die kurze Antwort ist .. irgendwie schwierig, aber Sie können es mit einigen Einschränkungen tun.

Für die Datenbindung bin ich mir nicht sicher, was Sie meinen .. wenn Sie nur die Daten bringen möchten, oder Sie möchten die Daten auch aktualisieren und löschen.

Für mich verwende ich Gridview überall, um die Daten zu zeigen und auch zu aktualisieren, zu löschen, und nach meiner Erfahrung ist das Aktualisieren und Löschen für eine Tabelle möglich.

Sie können jedoch die Daten anderer Tabellen anzeigen, indem Sie sie in ItemTemplate anzeigen.

Hier ist ein kleines Beispiel von dem, was ich tat:

 <asp:GridView runat="server" ItemType="model" 
     ID="someGrid" SelectMethod="someGrid_GetData" CellPadding ="10" 
     autoGenerateColumns="false" deleteMethod="someGrid_DeleteItem" 
     updateMethod="someGrid_UpdateItem" DataKeyNames="id" 
     AutoGenerateDeleteButton="true" AutoGenerateEditButton="true"> 
       <Columns> 
     <asp:DynamicField DataField="col1" /> 
     <asp:BoundField DataField="col2" HeaderText="col2" /> 
     <asp:TemplateField HeaderText="details"> 
      <ItemTemplate> 
       <asp:HyperLink ID="detailLink" runat="server" Text="details" NavigateUrl='<%# "~/someDetails?some=" + Eval("someDetails") %>'></asp:HyperLink> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="vendor"> 
      <ItemTemplate> 
       <asp:Label ID="vendorLbl" runat="server"></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
    </asp:GridView> 

wie Sie sehen können, könnten Sie aktualisieren, um die Daten aus Modelltabelle löschen, aber Sie können von der als Markierung setzen Daten innerhalb Verkäufer auch Code dahinter.

Ich habe viel Zeit damit verbracht, darüber nachzudenken. Und hoffe das hilft!

+0

Danke für die Antwort. Ich möchte die Daten von einem Formular zu zwei Datenbanktabellen aktualisieren. Es geht also mehr darum, die TryUpdateModel-Methode zweimal zu verwenden, aber jedes Mal nur einen Teil der Formulardaten zu verwenden. Ich habe meine Frage aktualisiert, um es klarer zu machen. –

+0

Entschuldigung, ich weiß es nicht. Sag mir, wenn du es erfährst. Ehrlich gesagt, ich bin mir nicht sicher, ob wir das schaffen können. –

Verwandte Themen