1

我想在 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;
        }

任何帮助将不胜感激。

4

1 回答 1

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();
    }
}
于 2012-11-21T14:30:53.563 回答