asp.net-mvc – 如何在ASP.NET MVC4 Api控制器中将视图呈现为字
发布时间:2020-12-16 09:40:59 所属栏目:asp.Net 来源:网络整理
导读:ASP.NET MVC4 Web API控制器应该在json结果属性中将Razor视图作为html返回. 我试过控制器 public class TestController : ApiController{ public HttpResponseMessage Get() { var body = RenderViewToStringobject("~/Views/Broneeri/Schedule.cshtml",new
ASP.NET MVC4 Web API控制器应该在json结果属性中将Razor视图作为html返回.
我试过控制器 public class TestController : ApiController { public HttpResponseMessage Get() { var body = RenderViewToString<object>("~/Views/Broneeri/Schedule.cshtml",new object() ); return Request.CreateResponse(HttpStatusCode.OK,new { content = body } ); } string RenderViewToString<T>(string viewName,T model) { ViewDataDictionary ViewData = new ViewDataDictionary(model); TempDataDictionary TempData = new TempDataDictionary(); ControllerContext controllerContext = new System.Web.Mvc.ControllerContext(); controllerContext.RouteData = new RouteData(); controllerContext.RouteData.Values.Add("controller","Schedule"); using (var sw = new StringWriter()) { var viewResult = ViewEngines.Engines.FindPartialView(controllerContext,viewName); var viewContext = new ViewContext(controllerContext,viewResult.View,ViewData,TempData,sw); viewResult.View.Render(viewContext,sw); viewResult.ViewEngine.ReleaseView(controllerContext,viewResult.View); return sw.GetStringBuilder().ToString(); } } } 但我有一个奇怪的例外 System.NotImplementedException was unhandled by user code HResult=-2147467263 Message=The method or operation is not implemented. Source=System.Web StackTrace: at System.Web.HttpContextBase.get_Items() at System.Web.Mvc.VirtualPathProviderViewEngine.GetPath(ControllerContext controllerContext,String[] locations,String[] areaLocations,String locationsPropertyName,String name,String controllerName,String cacheKeyPrefix,Boolean useCache,String[]& searchedLocations) at System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView(ControllerContext controllerContext,String partialViewName,Boolean useCache) at System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup,Boolean trackSearchedPaths) at System.Web.Mvc.ViewEngineCollection.Find(Func`2 cacheLocator,Func`2 locator) ... 在线 var viewResult = ViewEngines.Engines.FindPartialView(controllerContext,viewName); 如何从ASP.NET 4 Web API控制器中的视图返回HTML内容? 解决方法
您需要使用NuGet控制台安装包RazorEngine.这是适用于我的代码:
using RazorEngine; using RazorEngine.Templating; string razorTemplate = "Hello @Model!"; string html = Engine.Razor.RunCompile( razorTemplate,"uniqueTemplateKey",// Guid.NewGuid().ToString() for example modelType: typeof(string),model: "Lorem Ipsum"); 希望能帮助到你! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – MVC 3/4 HttpModule或ActionFilter
- 如果ASP.NET应用程序的CustomErrors设置为Off,有没有办法以
- asp.net-mvc – 为什么在我的ASP MVC4应用程序中重定向资源
- asp.net-mvc – 如何在ASP.Net MVC中对自定义ActionFilter进
- asp.net – 我需要html编码标题属性(工具提示)吗?
- asp.net-mvc – 使用Ajax在ASP.NET MVC的Kendo UI中级联Dro
- asp.net – ASPNET WebForms服务器控件在Page_Load中为NULL
- asp.net – 访问母版页中的祖父母内容占位符
- 日志记录 – ASP.NET MVC 4 Web Api:诊断功能
- asp.net – 在.NET 4上发现“有潜在危险的Request.Path ……
推荐文章
站长推荐
- asp.net – Application_error函数间歇性捕获“文
- Asp.Net Mvc5表单提交之List集合
- asp.net-mvc – 如何在单击Html.ActionLink时加载
- 剃刀 – 输入隐藏显示不正确的ID(Guid.Empty)
- asp.net – 存储字符串数组在appSettings?
- asp.net-mvc-2 – EditorFor – 传入字典的模型项
- asp.net-mvc – 如何获取某些代码在ASP.NET MVC
- asp.net – 授权问题 – 匿名用户无法访问.jpeg或
- asp.net – SqlConnection localhost用户名失败
- asp.net-mvc – ASP.NET MVC强类型视图与否?
热点阅读