2016-08-22 245 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,你可以把它作为邮件发送 –