我的计划是拥有一些动态加载的程序集,这些程序集可能会提供一些 Web 界面。
我决定在这些程序集中放置一些 WebApi Controller ,其中一些 Controller 可以使用内联 Razor 模板(通过自定义 MediaTypeFormatter)提供 html View 。 到目前为止,它与内联 Razor 模板配合得很好:
var myModel = new {Name:"World"};
var template = "Hello, @Model.Name!";
return Razor.Parse(template, myModel);
但我遇到的问题是我不知道如何使用/注册位于程序集中的外部 Razor View (.cshtml 文件)。
到目前为止,我尝试了以下方法:
var template = Razor.Resolve("MyView.cshtml", myModel);
return template.Run(new ExecuteContext());
但是我的 template
变量是 null
,我猜是找不到 MyView.cshtml,没有注册或者引用不正确。
最佳答案
我们正在使用 Razor Generator - VS 的自定义工具 (http://visualstudiogallery.msdn.microsoft.com/1f6ec6ff-e89b-4c47-8e79-d2d68df894ec?SRC=VSIDE)。
Razor View 在设计时进行预编译,并作为 C# 类内置到程序集中。无需将 .cshtml 文件包含到作为嵌入式资源的项目中。
关于c# - ApiControllers 和 Razor View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17457291/