他们是使用 ASP.NET MVC 视图生成电子邮件模板而无需跳过麻烦的解决方案吗?
让我详细说明一下跳圈。
var fakeContext = new HttpContext(HttpContext.Current.Request, fakeResponse);
var oldContext = HttpContext.Current;
HttpContext.Current = fakeContext;
var html = new HtmlHelper(new ViewContext(fakeControllerContext,
new FakeView(), viewDataDictionary, new TempDataDictionary()),
new ViewPage());
html.RenderPartial(viewName, viewData, viewDataDictionary);
HttpContext.Current = oldContext;
上面的代码使用当前的 HttpContext 来伪造一个新的 Context 并使用 RenderPartial 渲染页面,我们不应该这样做。
使用 ControllerContext 和 .Render 的另一个非常详细的解决方案:
(IEmailTemplateService、标头/回发解决方法 http://cowfarm.net/?p=81)但几乎用更多的代码做同样的事情。
另一方面,我正在寻找一种只需渲染视图而无需 POST/GET 的东西,并生成一个简单的字符串,我可以通过我的电子邮件代码发送该字符串。
不会出现错误的东西,例如两次发布标题或伪造某些数据。
EX:
//code which does not fire Render, RenderPartial... etc
var email = emailFramework.Create(viewData, view);
请参阅下面的我的解决方案或点击此链接:
我使用 Spark 的解决方案:(12/30/2009)ASP.NET MVC 电子邮件模板解决方案 http://cowfarm.net/?p=188