【问题标题】:How to implement razor.cshtml file within action如何在操作中实现 razor.cshtml 文件
【发布时间】:2012-11-21 14:17:07
【问题描述】:

我想在 action 中实现 view.cshtml 文件,然后将其结果作为字符串获取,但不作为 ActionResult 从 action 方法返回。
用代码来解释,而不是:

public ActionResult Tesst()
        {
            // return ViewResult
            return View();
        }

一定是这样的:

public string Test()
        {
            string viewResult = string.Empty;
            // implement "test.cshtml" and get its result as string
            // assign result to viewResult variable
            return viewResult;
        }

任何帮助将不胜感激。

【问题讨论】:

标签: asp.net asp.net-mvc razor asp.net-mvc-4


【解决方案1】:

我使用这样的东西将我的应用程序内的视图呈现为字符串:

public static string RenderViewToString(System.Web.Mvc.Controller controller,
                                  string viewName, string layout, object model)
{
    controller.ViewData.Model = model;
    using (StringWriter sw = new StringWriter())
    {
        ViewEngineResult viewResult =
                   ViewEngines.Engines.FindView(
                           controller.ControllerContext, viewName, layout);
        ViewContext viewContext = new ViewContext(
                   controller.ControllerContext, 
                   viewResult.View, controller.ViewData, 
                   controller.TempData, sw);
        viewResult.View.Render(viewContext, sw);

        return sw.GetStringBuilder().ToString();
    }
}

【讨论】:

  • 这样,所有codeside都正常工作了吗?如@{ ... } 或@Datetime.Now
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多