ApiControllers和Razor视图

时间:2013-07-03 20:13:18

标签: c# asp.net razor asp.net-web-api

我的计划是让一些动态加载的程序集可以提供一些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,没有注册或没有正确引用。

1 个答案:

答案 0 :(得分:0)

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

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