Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在action中实现razor.cshtml文件_Asp.net_Asp.net Mvc_Razor_Asp.net Mvc 4 - Fatal编程技术网

Asp.net 如何在action中实现razor.cshtml文件

Asp.net 如何在action中实现razor.cshtml文件,asp.net,asp.net-mvc,razor,asp.net-mvc-4,Asp.net,Asp.net Mvc,Razor,Asp.net Mvc 4,我希望在action中实现view.cshtml文件,然后将其结果作为字符串获取,但不作为action方法的ActionResult返回。 用代码解释,而不是: public ActionResult Tesst() { // return ViewResult return View(); } İt必须如此: public string Test() { string vi

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

public ActionResult Tesst()
        {
            // return ViewResult
            return View();
        }
İt必须如此:

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

任何帮助都将不胜感激。

我使用类似的方法将我的应用程序中的视图呈现为字符串:

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();
    }
}

我使用类似的方法将应用程序中的视图渲染为字符串:

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();
    }
}

只是想知道你想要实现什么-你的问题可能会有一个更干净的解决方案。这个问题看起来会为你提供答案只是想知道你想要实现什么-你的问题可能会有一个更干净的解决方案。这个问题看起来会以这种方式为你提供答案,所有代码端工作正常吗?例如@{…}或@Datetime.now这样,所有代码端都能正常工作吗?例如@{…}或@Datetime.Now