我正在尝试编写一个返回 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/