2016-06-22 50 views
0

我正在爲放置在網站上的訂單創建電子郵件確認。我持有的訂單信息如下:將數據從服務傳遞到ASP.NET MVC中的視圖模板

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

有此之前,更多的代碼,但是這個充滿持有我們所有的訂單數據爲順序的對象。接下來,我打電話到一個服務,它將視圖模板作爲參數來格式化電子郵件,我的問題是這樣的;我怎樣才能將數據從這個服務傳遞到視圖模板,因爲它不是一個真正的模型或類似的東西,所以我實際上可以得到一個格式正確的視圖模板來傳遞到我所做的電子郵件服務中?讓我知道,如果這是有道理的,如果沒有,我會嘗試重新說話,謝謝。

編輯:我的問題與格式化我需要發送的電子郵件無關,因此讓我以這種方式重新說明問題;我需要將訂單信息傳遞到一個局部視圖,我已經有代碼工作,接受部分視圖並格式化電子郵件,所以我只需要知道如何將數據傳遞到視圖,而不需要傳遞數據控制器或模型。

+0

不,它真的不清楚。考慮將您的其他服務代碼發佈到您傳遞視圖模板的位置以及您想要傳遞的訂單數據的方式如何? – Rahul

回答

1

從您的編輯,看起來像只是想在您的操作方法中有Order信息。如果是這樣,那麼你有兩個選擇:

  1. 在您的控制器的操作方法,直接調用這個方法公佈其返回Order實例,並把它傳遞給局部視圖。

  2. 創建一個視圖模型,該模型將具有類型爲IOrder的屬性。在您的操作方法中調用該服務並填充該viewmodel屬性。反過來將他的觀點模型作爲模型傳遞給局部視圖。

  3. 如果你不希望任何模型與視圖相關聯,那麼調用服務,重視它的返回值來ViewBag對象像

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

用同樣的在你的局部視圖說

@ViewBag.Order 
相關問題