ASP.NET MVC : How to call custom Html Helper from a controller method?

标签 asp.net asp.net-mvc json

我正在尝试编写一个返回 ActionResult 的 Controller 方法。

在这个方法中,我想: 1. 调用 HTML 帮助器方法 2. 捕获 HTML 帮助器渲染的 HTML 并将其存储在字符串中 3. 返回该方法,并将呈现的 HTML 包装为 JSON

如何从 Controller 方法调用 Html Helper 方法?仅仅使用静态类 HtmlHelper 是行不通的。

最佳答案

var helper = new HtmlHelper<TModel>(new ViewContext(), new ViewPage());

或者,如果这不起作用,您可以尝试这个。

Stream filter = Stream.Null;
StreamWriter writer = new StreamWriter(filter);
var viewContext = new ViewContext(this.ControllerContext, 
    new WebFormView("MyView"), 
    new ViewDataDictionary(this.ViewData), 
    new TempDataDictionary(), writer);
var helper = new HtmlHelper<TModel>(viewContext, new ViewPage());

只需将 TModel 替换为您的模型类型即可。

关于ASP.NET MVC : How to call custom Html Helper from a controller method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566053/

相关文章:

C# asp.net 支持一个dll的多个版本

c# - 未找到 Signalr 集线器 404

asp.net-mvc - 包 'Microsoft.Net.Compilers' 的项目 PROJECT : Unable to find version 2. 0.0 的 NuGet 包还原失败

c# - 关于 Whitespace Filter Regex 的问题(很简单,只需要添加一点)

json - 如何使用 Node-orm2 将 json 对象漂亮地打印到数据库

javascript - 是否有比 JSON/BSON 更精简的 Javascript 对象表示法格式?

c# - GridView OnSelectedIndexChanged 事件未触发

c# - GridView 没有拾取空数据对象

c# - ASP.NET MVC 5 : App Pool, Windows 身份验证和 Active Directory

java - 如何使用 Jackson JSON 将值存储到 Java