Jas*_*ley 4 razor asp.net-web-api
我有一个webapi控制器动作,它创建一个HTML电子邮件.目前我正在使用string.format来创建html,因为这是最简单的事情.我知道这将变得更加复杂,并希望使用剃刀模板.
我已经看到了如何为MVC控制器执行此操作的示例,但我找不到任何有关如何在一个内容中执行此操作WebApiController.这可能吗?如果是这样,你知道任何资源吗?我的google-fu让我失望了.
查看本文Wouter de Kort 将ASP.NET MVC视图渲染为Web Api控制器中的字符串
public static string RenderViewToString(string controllerName, string viewName,
object viewData)
{
HttpContextBase contextBase = new HttpContextWrapper(HttpContext.Current);
var routeData = new RouteData();
routeData.Values.Add("controller", controllerName);
var controllerContext = new ControllerContext(contextBase, routeData,
new EmptyController());
var razorViewEngine = new RazorViewEngine();
var razorViewResult = razorViewEngine.FindView(controllerContext, viewName,
"", false);
var writer = new StringWriter();
var viewContext = new ViewContext(controllerContext, razorViewResult.View,
new ViewDataDictionary(viewData), new TempDataDictionary(), writer);
razorViewResult.View.Render(viewContext, writer);
return writer.ToString();
}
private class EmptyController : ControllerBase
{
protected override void ExecuteCore() { }
}
//You can simply call this from anywhere in your Web Api Controller:
RenderViewToString("controller", "view", model)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2445 次 |
| 最近记录: |