我正在尝试在 MVC6 控制器方法内为 Microsoft.AspNet.Mvc.Rendering.DefaultHtmlGenerator 创建(或以某种方式获取它的实例)
我想在我的 asp.net mvc 控制器中生成用于验证我的模型的 html。我的问题是在哪里获取 DefaultHtmlGenerator 的构造函数数据,例如防伪、metadataProvider 等
[HttpGet]
public IActionResult GetMarkup()
{
// IHtmlGenerator ge = this.CurrentGenerator();
IHtmlGenerator ge = new DefaultHtmlGenerator(params);
var tag= ge.GetClientValidationRules(params)
}
这是有关 HtmlGenerator 类的链接默认Html生成器
由于 MVC 6 基于依赖注入,因此您所要做的就是 requireIHtmlGenerator
在你的构造函数中,DI容器会自动填充所有的依赖项DefaultHtmlGenerator
(前提是您的 DI 配置中已设置)。
public class HomeController : Controller
{
private readonly IHtmlGenerator htmlGenerator;
public HomeController(IHtmlGenerator htmlGenerator)
{
if (htmlGenerator == null)
throw new ArgumentNullException("htmlGenerator");
this.htmlGenerator = htmlGenerator;
}
public IActionResult GetMarkup()
{
// Use the HtmlGenerator as required.
var tag = this.htmlGenerator.GetClientValidationRules(params);
return View();
}
}
话虽如此,看来GetClientValidationRules
方法仅设计为在视图中工作,因为它接受ViewContext
作为参数。但这确实回答了您提出的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)