2016-05-05 13 views
1

Richtig betrachten Sie dieses Szenario, ich habe einen Bericht und dieser Bericht hat Kommentare. Jetzt, wenn ich den Bericht anzeigen möchte ich die Kommentare sehen und weitere Kommentare hinzufügen, falls erforderlich.So binden Sie an ein Objektobjekt-Attribut in C#

So also habe ich drei Objekte

MyReport 
MyReportComment 
MyReportCreateViewModel 

Die ersten beiden sind dort so kann ich einen Bericht mit Anmerkungen haben, die dritte die 2 erstellt zu handhaben und so kann ich eine Ansicht erstellen.

Alles ist gut, aber jetzt möchte ich mit diesem Beitrag umgehen - das sollte ausreichen.

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Details(Models.MyReportCreateViewModel ViewCreateModel) 

ich sicher sein will, will ich das Kommentarfeld binden (im MyReportComment) zu dem in ViewCreateModel.MyReportComment Überkleben zu vermeiden.

Wie würde ich das tun? Normalerweise würde ich das tun.

[Bind(Include="Title,Content")] Models.MyReport report 

Wenn es eine ‚einfache‘ Ansicht, die ein einfaches Objekt nehmen, aber ich sehe nicht, wie dies in diesem Fall zu tun ist.

Antwort

0

Richtig gibt es eine einfache Antwort hier können Sie nicht. Der richtige Tag, dies zu tun ist nicht in überhaupt das komplexe Objekt zu übergeben (auch wenn es getan werden kann!)

die id Pass und das Objekt, das Sie dann wollen erstellen, um so etwas wie diese

if (TryUpdateModel(instructorToUpdate, "", 
       new string[] { "LastName", "FirstMidName", "HireDate", "OfficeAssignment" })) 
verwenden

Dabei sind LastName, FirstMidName usw. die Attributnamen der Klasse, die Sie zu aktualisieren versuchen.

Das wird alle Fehler auffüllen und helfen so.

Verwandte Themen