2013-07-03 114 views
5

我的計劃是有幾個動態加載的程序集,可能會提供一些Web界面。ApiControllers和剃刀視圖

我決定把幾個WebApi控制器放在那些程序集中,其中一些控制器可以使用內聯Razor模板(通過自定義MediaTypeFormatter)來提供html視圖。 它的工作原理非常好,內聯模板剃刀迄今:

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

但我的問題是,我無法弄清楚如何使用/註冊位於我的組件內外部剃刀視圖(.cshtml文件)。

我試過以下至今:

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

但我template變量是null,我的猜測是MyView.cshtml無法找到,未註冊或不正確引用。

+3

您是否在Visual Studio中爲cshtml文件設置了構建操作:「Embedded Resource」?你是否用'TemplateService'配置了'Razor.SetTemplateService',它可以從正確的程序集中解析你的模板? – nemesv

+0

@nemesv,不,我沒有。你能推動我正確的方向如何實現一個'TemplateService'解決我的模板?謝謝。 –

+2

這是我怎麼做https://github.com/darrelmiller/HypermediaApiSite/blob/master/HypermediaApiContent/Tools/EmbeddedResolver.cs –

回答