2016-08-22 162 views
0

這是我的代碼,用於發送郵件,但我希望通過郵件發送我的發票視圖。如何在MVC中通過電子郵件發送發票

MessageDetails _msg = new MessageDetails(); 
_msg.Body = "Your Booking is Accepted"; 
string userId = null; 
if (booking.BookedFor != "0") 
{ 
    userId = booking.BookedFor; 
} 
else 
{ 
    userId = booking.UserId; 
} 
var code = userName.GetUserNameById(Convert.ToInt16(userId)); 
_msg.Destination = new string[] { code }; 
_msg.Subject = "Booking Confirmed"; 
_service.SendEmail(_msg); 

如何通過郵件發送發票視圖?

+1

通常,您需要將消息的內容分配給_msg.Body屬性。你提到的「發票視圖」具體是什麼?這是一個原始文本或HTML或文件?或者它是一個MVC視圖? – suwik

+0

它只有一個MVC視圖 –

+0

我想通過_msg.Body發送發票,但我如何傳遞視圖? –

回答

0

其實你不能通過電子郵件發送視圖。您需要將視圖轉換爲原始html,然後解析messagebody處的html。

+0

其實你可以很難 –

+0

我想在郵件中附上我的主視圖,有沒有辦法做到這一點? –

0

如果您使用剃刀的觀點 - 我認爲像這樣可以幫助你實現你的目標:

//create a view model 
var path = Server.MapPath("~/Relative/Path/To/YourView.cshtml"); 
var fileContent = System.IO.File.ReadAllText(path); 
var result = Razor.Parse(fileContent, yourViewModel); 
_msg.Body = result; 
+0

我想在郵件中附加我的主視圖,有沒有辦法做到這一點? –

0

您可以將參數傳遞給Razor視圖和很容易生成動態內容

這方法是由我來轉換Razor視圖爲HTML

https://stackoverflow.com/a/38322783/5237614

它很容易產生和風格的HTML,非常容易測試也

+0

我想在郵件中添加我的主視圖,有沒有辦法做到這一點? –

+0

@aparnasharma都是一樣的,你最後得到的是html,你可以把它作爲郵件發送 –