首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RazorGenerator、模板和@Html

RazorGenerator、模板和@Html
EN

Stack Overflow用户
提问于 2012-10-23 16:48:28
回答 2查看 4.5K关注 0票数 6

我正在尝试使用RazorGenerator作为电子邮件模板引擎。我想拿一个模型与数据,组装正确的部分视图集,并返回HTML,我可以电子邮件出去。

编辑:除了这个工作流之外,任何解决方案都需要作为一个.cshtml文件进行编辑,并且能够编译成一个动态链接库。由于各种原因,部署cshtml文件本身是不实际的--如果我们不能将所有的剃须刀视图嵌入到一个文件中,那么我们就不能使用这个建议。因此,RazorGenerator。

到目前为止,我已经算出了它的每一个部分,除了部分。当我尝试在模板文件中使用@Html.Partial()时,我得到:The name 'Html' does not exist in the current context

基于这个答案,我知道默认情况下@Html不是Razor的一部分,关于如何在控制器中创建HtmlHelper有很多答案。但是,我需要在模板中创建一个,它没有我需要遵循这些示例的ControllerContext

我也尝试使用@Include,但是RazorGenerator模板似乎不支持这一点。编辑:我也尝试创建一个新类,它继承了TemplateBase<>并复制了RazorTemplateBase的所有功能,但是我在@Include行上得到了NullReferenceException

因此,我的主要问题是:是否有更好的方法将另一个Razor文件(带有模型)包含到我的文件中?

其次,如果没有更好的方法,我如何创建HtmlHelper?

赏金的编辑:只是想重申一下,在一个可接受的答案中,我需要四件事:

  1. 使用标准编辑器编辑.cshtml文件的能力(没有“将其存储为字符串”之类的功能)
  2. 将所有内容编译成单个dll的能力,可以使用当前的构建系统进行部署(我们不能部署很多单独的..cshtml)
  3. 能够从另一个.cshtml文件中引用一个文件,并传递一个模型--相当于@Includes@Html.Partial (如果它们工作的话,这两个模型都是完全可以接受的)。
  4. 有能力用电子邮件发送结果,并附上附件。(如果结果是字符串或可转换为字符串,我已经有了代码。)

目前,我可以得到这三个工作的大多数组合,但我不能同时得到所有四个。我对新的库开放,可以替换RazorGenerator,或者丢弃我已经拥有的任何部分,只要结果能够根据需要工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-25 19:01:23

只是一个想法,但为什么不能设置其他页面,在Controller中打开一个HTTPWebRequest / WebClient,在那里发送所需的数据,将html/text全部从该视图中删除,合并多个调用,然后将所有字符串发送出去。

代码语言:javascript
复制
public ActionResult SomeAction() {
  // call other section logic using HttpWebRequest or WebClient
  // /controller/emailsection/{vars}/......
  // Get the string out of the request add it to ViewData["xxx"]
  // rinse and repeat for other sections

}

public ActionResult EmailSection() {
  //put section logic here

  Response.ContentType = "text/html"; // "text/plain"
  Response.Write("Some HttpWebResponse");
  return null;
}
票数 1
EN

Stack Overflow用户

发布于 2012-10-27 05:25:27

这是你想要的吗?

将视图呈现为字符串

如何在ASP.Net/MVC中使用电子邮件屏幕

http://www.brightmix.com/blog/how-to-renderpartial-to-string-in-asp-net-mvc/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13035427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档