c# - ApiControllers 和 Razor View

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

我的计划是拥有一些动态加载的程序集,这些程序集可能会提供一些 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/

相关文章:

c# - 如何在 c sharp 中以编程方式将 html 标签 dir 属性从 rtl 设置为 ltr,反之亦然

javascript - 从 ViewBag 加载文件?

css - asp.net mvc3 intellisense 不会为 css 类触发

c# - 将业务逻辑(c#)传递给事务处理(sql)会提高性能吗?

c# - 如何在 Autofac InterceptorSelector 的构造函数中使用具有参数的拦截器

javascript - 页面溢出时展开图像和导航菜单

asp.net - ua-x-compatible 最接近 IE8 Compat 的设置

c# - LRESULT、WPARAM 和 LPARAM 是什么意思?

c# - 无法从列表框中删除项目

cshtml @Url.Action(Action, Controller) 的 JavaScript 类比