2016-06-22 4 views
0

Ich erstelle eine E-Mail-Bestätigung für Bestellungen, die auf einer Website platziert werden. Ich habe die folgende, die die Reihenfolge Informationen enthält:Übergabe von Daten von einem Service zu einer Ansichtsvorlage in ASP.NET MVC

 IOrder order = null; 
     if (response.Data != null) 
     { 
      order = FillOrder(response.Data); 
     } 

Es gibt mehr Code, bevor diese aber das füllt ein Objekt, das alle unsere Auftragsdaten für den Auftrag enthält. Als nächstes rufe ich einen Dienst an, der eine Ansichtsvorlage als Parameter zum Formatieren der E-Mail verwendet, meine Frage ist dies; Wie würde ich Daten aus diesem Service in die Ansichtsvorlage übertragen, da es sich nicht wirklich um ein Modell oder ähnliches handelt, sodass ich tatsächlich eine korrekt formatierte Ansichtsvorlage erhalten kann, die in den von mir erstellten E-Mail-Dienst übernommen wird? Lass mich wissen, ob das Sinn macht und wenn nicht, werde ich versuchen, es neu zu schreiben, danke.

Edit: Meine Frage hat nichts mit der Formatierung der E-Mail zu tun, die ich senden muss, also lassen Sie mich das Problem auf diese Weise umschreiben; Ich muss die Bestellinformation in eine Teilansicht übergeben, ich habe bereits den Code, der die Teilansicht übernimmt und die E-Mail formatiert, also muss ich nur wissen, wie ich Daten an die Ansicht weiterleiten kann, ohne dass die Daten weitergegeben werden Controller oder ein Modell.

+0

Nein, es ist wirklich nicht klar. Ziehen Sie in Betracht, Ihren anderen Service-Code zu posten, an dem Sie viewtemplate übergeben und wie Sie diese Bestelldaten weitergeben möchten? – Rahul

Antwort

1

Von Ihrer Bearbeitung sieht aus, als ob Sie nur die Order Informationen in Ihrer Aktionsmethode haben möchten. Wenn ja, dann zwei Wahl Sie haben:

  1. In Ihrem Controller Aktion-Methode, direkt rufen Sie diese Methode geschrieben, die die Order Instanz zurückgibt und es dem Teilansicht passieren.

  2. Erstellen Sie ein Ansichtsmodell, das eine Eigenschaft des Typs IOrder haben wird. Rufen Sie in Ihrer Aktionsmethode den Dienst auf, und füllen Sie die Viewmodel-Eigenschaft. Das Modell wird wiederum als Modell an die Teilansicht übergeben.

  3. Wenn Sie den Service anrufen und legt es Rückgabewert ViewBag Objekt wie

    IOrder order = serviceOrderMethod(); ViewBag.Order = order;

Verwenden dieselben in Ihrer Teilansicht nicht jedes Modell sollen dann mit Blick in Verbindung gebracht werden Sprichwort

@ViewBag.Order 
Verwandte Themen