Asp.net 如何在action中实现razor.cshtml文件
我希望在action中实现view.cshtml文件,然后将其结果作为字符串获取,但不作为action方法的ActionResult返回。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
用代码解释,而不是:
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