【发布时间】:2013-07-01 16:36:32
【问题描述】:
我的计划是创建一些动态加载的程序集,它们可以提供一些 Web 界面。
我决定在这些程序集中放置一些 WebApi 控制器,其中一些控制器可以使用内联 Razor 模板(通过自定义 MediaTypeFormatter)提供 html 视图。 到目前为止,它与内联 Razor 模板配合得非常好:
var myModel = new {Name:"World"};
var template = "Hello, @Model.Name!";
return Razor.Parse(template, myModel);
但我遇到的问题是我不知道如何使用/注册位于我的程序集中的外部 Razor 视图(.cshtml 文件)。
到目前为止,我尝试了以下方法:
var template = Razor.Resolve("MyView.cshtml", myModel);
return template.Run(new ExecuteContext());
但是我的template变量是null,我猜是找不到MyView.cshtml,没有注册或者没有正确引用。
【问题讨论】:
-
您是否在 Visual Studio 中为您的 cshtml 文件设置了构建操作:“嵌入式资源”?您是否使用
TemplateService配置了Razor.SetTemplateService,它可以从正确的程序集中解析您的模板? -
@nemesv,不,我没有。您能否将我推向正确的方向如何实现解析我的模板的
TemplateService?谢谢。 -
谢谢,你们中的任何人都想让您的评论成为答案,以便我接受吗?问题似乎已经解决了,我只需要弄清楚如何在加载每个程序集时为它们注册解析器。
标签: c# asp.net razor asp.net-web-api