Create/Get 来自 MVC 控制器的 DefaultHtmlGenerator
Create/Get DefaultHtmlGenerator from MVC Controller
我正在尝试在我的 MVC6 控制器方法
中为 Microsoft.AspNet.Mvc.Rendering.DefaultHtmlGenerator 创建(或以某种方式获取它的实例)
我想在 asp.net mvc 的控制器中生成 html 以验证我自己的模型。我的问题是从哪里获取 DefaultHtmlGenerator 的构造函数数据,例如防伪、metadataProvider..etc
[HttpGet]
public IActionResult GetMarkup()
{
// IHtmlGenerator ge = this.CurrentGenerator();
IHtmlGenerator ge = new DefaultHtmlGenerator(params);
var tag= ge.GetClientValidationRules(params)
}
这里是 link 关于 HtmlGenerator class
DefaultHtmlGenerator
由于MVC 6是基于依赖注入的,你所要做的就是在你的构造函数中require IHtmlGenerator
,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
作为参数。但这确实回答了您提出的问题。
我正在尝试在我的 MVC6 控制器方法
中为 Microsoft.AspNet.Mvc.Rendering.DefaultHtmlGenerator 创建(或以某种方式获取它的实例)我想在 asp.net mvc 的控制器中生成 html 以验证我自己的模型。我的问题是从哪里获取 DefaultHtmlGenerator 的构造函数数据,例如防伪、metadataProvider..etc
[HttpGet]
public IActionResult GetMarkup()
{
// IHtmlGenerator ge = this.CurrentGenerator();
IHtmlGenerator ge = new DefaultHtmlGenerator(params);
var tag= ge.GetClientValidationRules(params)
}
这里是 link 关于 HtmlGenerator class DefaultHtmlGenerator
由于MVC 6是基于依赖注入的,你所要做的就是在你的构造函数中require IHtmlGenerator
,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
作为参数。但这确实回答了您提出的问题。