C# MVC3有没有办法 将view() 的结果存入字符串 而不是输出
答案:2 悬赏:50
解决时间 2021-01-24 20:34
- 提问者网友:容嬷嬷拿针来
- 2021-01-23 21:14
C# MVC3有没有办法 将view() 的结果存入字符串 而不是输出
最佳答案
- 二级知识专家网友:一秋
- 2021-01-23 22:45
自己领会
public static string RenderPartialViewToString(Controller controller, string viewName, object model)
{
controller.ViewData.Model = model;
try
{
using (StringWriter sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
catch (Exception ex)
{
return ex.ToString();
}
}
public static string RenderPartialViewToString(Controller controller, string viewName, object model)
{
controller.ViewData.Model = model;
try
{
using (StringWriter sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
catch (Exception ex)
{
return ex.ToString();
}
}
全部回答
- 1楼网友:梦中风几里
- 2021-01-23 23:25
@{
var a = ViewData["key"];
}追问不是往view里传值啦 是获取模版的内容存入字符串 就跟smarty的那个功能差不多的追答什麽内容?提交的数据吗?,直接POST回去就可以了啊追问不是的 是把view层的东西存入字符串 而不是输出给用户 这个是为了生成静态页用的 就跟php里获取输出缓存一样追答如果要缓存的话加下面的语句就可以了
[OutputCache(Duration=600)]
var a = ViewData["key"];
}追问不是往view里传值啦 是获取模版的内容存入字符串 就跟smarty的那个功能差不多的追答什麽内容?提交的数据吗?,直接POST回去就可以了啊追问不是的 是把view层的东西存入字符串 而不是输出给用户 这个是为了生成静态页用的 就跟php里获取输出缓存一样追答如果要缓存的话加下面的语句就可以了
[OutputCache(Duration=600)]
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯