@Chev上面接受的答案很好,但我想渲染特定操作的结果,而不仅仅是特定的视图。

此外,我需要能够将参数传递给该操作,而不是依赖于注入模型。

所以我想出了我自己的方法,我把它放在我的控制器的基类中(让它们全部可用):

protected string RenderViewResultAsString(ViewResult viewResult)

{

using (var stringWriter = new StringWriter())

{

this.RenderViewResult(viewResult, stringWriter);

return stringWriter.ToString();

}

}

protected void RenderViewResult(ViewResult viewResult, TextWriter textWriter)

{

var viewEngineResult = this.ViewEngineCollection.FindView(

this.ControllerContext,

viewResult.ViewName,

viewResult.MasterName);

var view = viewEngineResult.View;

try

{

var viewContext = new ViewContext(

this.ControllerContext,

view,

this.ViewData,

this.TempData,

textWriter);

view.Render(viewContext, textWriter);

}

finally

{

viewEngineResult.ViewEngine.ReleaseView(this.ControllerContext, view);

}

}

假设我有一个名为Foo的动作,它接受一个模型对象和一些其他参数,它们共同影响将使用的视图:

public ViewResult Foo(MyModel model, int bar)

{

if (bar == 1)

return this.View("Bar1");

else

return this.View("Bar2", model);

}

现在,如果我想获得调用操作Foo的结果,我可以通过调用Foo方法获取ViewResult,然后调用RenderViewResultAsString以获取HTML文本:

var viewResult = this.Foo(model, bar);

var html = this.RenderViewResultAsString(viewResult);

mvc if 显示html,asp.net mvc - 在MVC3 Razor中,如何在动作中获取渲染视图的html?相关推荐

  1. 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 系列文章 七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)-- ...

  2. ASP.NET MVC教程五:ASP.NET MVC中的路由

    一.概述 在ASP.NET MVC架构中,控制器在3大核心构件中处于中心地位,通过控制器支配模型和视图,然而从浏览器发出的请求到控制器还需要路由的协助,路由将特定的请求和控制器的动作对应起来. 在AS ...

  3. mvc跳转html,ASP.NET MVC页面重定向简单介绍

    在asp.net中页面重定向:Server.Execute("m2.aspx"); 服务器保存此页转向前的数据后,使页面转向到m2.aspx执行, 再返回本页继续执行.再将三者结果 ...

  4. MVC 各种传值方式 ASP.NET MVC view与controller传值方式

    MVC 各种传值方式 ViewData传值. HomeController.cs Co de: public ActionResult Index() {       ViewData["T ...

  5. Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 6 ----asp.net MVC+Extjs

    现在mvc采用了ModelBinder, Controller中现在可以接受很多复杂类型的参数,但是对于jquery,extjs等js框架来说,更多的是采用json格式与服务器端传递参数更合理.对于简 ...

  6. npoi的mvc怎么ajax导出,asp.net mvc利用NPOI导入导出Excel解决方法

    asp.net mvc利用NPOI导入导出Excel 导出Excel 2003没有问题,导出Excel2007老是出现无法访问已关闭的流,请帮忙解决,或是哪位有mvc导入导出excel的工具类能提供, ...

  7. mvc 404错误 php,ASP.NET MVC实现404跳转的代码实例

    本篇文章主要介绍了ASP.NET MVC制作404跳转实例(非302和200) ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 产生404的原因主要有以下: 1.浏览器和爬虫:某些浏览器会请求网站 ...

  8. ASP.NET MVC教程四:ASP.NET MVC中页面传值的几种方式

    准备 在Models文件夹里面新添加Student实体类,用来模拟从Controller向View传递数据,Student类定义如下: using System; using System.Colle ...

  9. ASP.NET MVC 3 Beta: Built-in support for charts(MVC3 Razor中使用图表的最佳方案)

    选择了很久,终于找到代码最简单的解决方案:其实就是MS自带的chart.MS Chart存在已久,只是在以前的用法中,需要保存img,这将导致MVC的访问冲突(曾困扰过我们一个项目),大致就是: 以下 ...

最新文章

  1. JavaScript 全选函数的实现
  2. Xamarin.Forms XAML的辅助功能Code Snippet
  3. CTFshow 信息收集 web14
  4. 图像检索:图像拷贝检索PHash改进方案
  5. Linux / argv、environ 和 env 的联系
  6. 求数组三项之和最接近某个目标数字
  7. react router v4 简介
  8. 用java script随机数_js中Math.random()生成指定范围数值的随机数【转】
  9. 在英特尔® 架构平台上开发和优化基于 NDK 的 Android 游戏应用
  10. utf8_unicode_ci和utf8_general_ci的区别,联系及使用
  11. 安卓一键新机_新机速递:vivo S7,如7而至;更有Nokia携手一键直达登场
  12. 存储远程复制缺点_远程医疗有一个隐藏的缺点
  13. 【AI视野·今日NLP 自然语言处理论文速览 第三十二期】Wed, 20 Apr 2022
  14. DB9公头母头的定义
  15. 【跳坑日记】Ubuntu 16.04安装 Ruby2.7.0遇到的坑:cannot load such file -- openssl (LoadError)
  16. 搜狗 2018校招 商业基础工程—测试开发练习题
  17. Linux命令(13)——实时监控进程、监控网络
  18. python --- 常见题目 2019.01.03
  19. 想要绘图效率节省储存空间?CAD内部图块该怎么创建?
  20. 构建和配置更安全的网站

热门文章

  1. springboot spring.config.location外挂配置文件实战
  2. 使用conan编译安装poco
  3. MATLAB数字信号处理函数
  4. 博图注册表删除方法_技成周报40期 | 三菱、西门子软件安装常见出错解决方法...
  5. USB 之三 常用抓包/协议分析工具(Bus Hound、USBlyzer、USBTrace、USB Monitor Pro等)
  6. 51单片机系列命名规则
  7. 启明云端感谢热心开发者分享SSD20x直接编译lvgl7.10带双缓(附源码)
  8. 全志 增加强制横屏标志 Patch
  9. mfc获取别的计算机是否在线,VC获取并修改计算机屏幕分辨率(MFC)
  10. python神经网络多元函数_阿里达摩院推荐的最新400集python教程,据说懂中文就能上手...