如何通过电子邮件发送MVC中的发票

时间:2016-08-22 11:39:08

标签: c# asp.net-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);

如何通过邮件发送发票视图?

3 个答案:

答案 0 :(得分:0)

实际上您无法通过电子邮件发送视图。您需要将视图转换为原始html,然后在messagebody处解析html。

答案 1 :(得分:0)

如果您正在使用Razor视图 - 我认为这样的事情可以帮助您实现目标:

//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;

答案 2 :(得分:0)

您可以将参数发送到剃须刀视图并轻松生成动态内容

我使用此方法将Razor视图转换为HTML

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

它易于生成和样式html,也非常容易测试