ApiControllers and Razor views

本文关键字:views Razor and ApiControllers | 更新日期: 2023-09-27 18:20:51

我的计划是拥有一些动态加载的程序集,这些程序集可以提供一些web接口。

我决定在这些程序集中放置一些WebApi控制器,其中一些控制器可以使用内联Razor模板(通过自定义MediaTypeFormatter)提供html视图。到目前为止,它与内联Razor模板配合得很好:

var myModel = new {Name:"World"};
var template = "Hello, @Model.Name!";
return Razor.Parse(template, myModel);

但我遇到的问题是,我不知道如何使用/注册位于程序集中的外部Razor视图(.cs.html文件)。

到目前为止,我尝试了以下内容:

var template = Razor.Resolve("MyView.cshtml", myModel);
return template.Run(new ExecuteContext());

但我的template变量是null,我猜MyView.cshtml找不到、没有注册或没有正确引用。

ApiControllers and Razor views

我们正在使用Razor Generator-VS的自定义工具(http://visualstudiogallery.msdn.microsoft.com/1f6ec6ff-e89b-4c47-8e79-d2d68df894ec?SRC=VSIDE)。

Razor视图在设计时进行预编译,并作为C#类内置到程序集中。不需要将.cshtml文件作为嵌入式资源包含到项目中。