У меня есть служба, которая отправляет электронную почту с определенным интервалом, электронная почта основана на шаблонах, где я передаю модель для просмотра и возвращает HTML-строку, она работает нормально. Рендеринг-ASP.NET-MVC-Razor-Views-to-String для HTML и CSS.
До сих пор это не происходит автоматически, когда пользователь нажимает кнопку и в этом событии щелчка я сначала сохраняю этот график, а затем выполняю отправку электронной почты с вложением этого сохраненного графика.
function SaveAllImage() {
bootbox.confirm("Are you sure you want to send fuel inventory email?<br/>", function (result) {
if (result) {
var fuelinventoryInputs = new Array();
@foreach(var _tank in Tank) {
<text>
var fuelInventoryInput = {};
fuelInventoryInput.TankId = @(_tank.Id);
fuelInventoryInput.Date = $("#txtEndDate").val();
var canvas = $("#DivTankLineGraph_@(_tank.Id) .canvasjs-chart-canvas").get(0);
if (canvas != undefined || canvas != null) {
var dataURL = canvas.toDataURL('image/png');
fuelInventoryInput.GraphImage = dataURL;
fuelinventoryInputs.push(fuelInventoryInput);
}
</text>
}
Ajax_CreateEdit_StateChange(1);
$.ajax({
type: "POST",
url: "/FuelInventory/SaveAllImage",
data: JSON.stringify(fuelinventoryInputs),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
//Ajax method to send email
SendEmail();
},
error: function (e) {
Ajax_CreateEdit_StateChange(2);
bootbox.alert("Error while sending fuel inventory email.");
}
});
}
});
}
Теперь мое новое требование состоит в том, чтобы заменить этот ручной процесс, но проблема в том, как интерпретировать этот javascript для создания графика и заставить этот граф присоединиться в Эмиле.
var model = new Tuple<List<Tank>, Dictionary<int, object>>(Tank.ToList(), tankData);
var graph = ViewRenderer.RenderView("~/Views/FuelInventory/GraphForEmail.cshtml", model,null);
Он использует визуализацию ASP.NET MVC и дает мне строку, которая также содержит javascript, но при рендеринге не может интерпретировать и выполнять JavaScript. Выход из ViewRenderer.RenderView в приложении
Выход из того же представления в браузере.![enter image description here](https://i.stack.imgur.com/5l8wx.png)
Есть ли способ выполнить мое требование.Мне нужно прикрепить тот же график в автоматическом письме.