ApiControllers和Razor视图

5
我的计划是有一些动态加载的程序集,可能提供一些网络界面。
我决定将一些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文件无法找到、未注册或引用不正确。


3
你是否在Visual Studio中将cshtml文件的构建操作设置为“嵌入式资源”?你是否配置了Razor.SetTemplateService,并使用从正确程序集解析模板的TemplateService - nemesv
@nemesv,没有。你能帮我指个明实现一个能解析我的模板的 TemplateService 的方向吗?谢谢。 - Maksim Vi.
2
这是我的做法 https://github.com/darrelmiller/HypermediaApiSite/blob/master/HypermediaApiContent/Tools/EmbeddedResolver.cs - Darrel Miller
谢谢,你们中有没有人想把你的评论变成答案,这样我就可以接受了吗?问题似乎已经解决了,我只需要弄清楚如何在加载每个程序集时为其注册解析器。 - Maksim Vi.
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接