2012-03-26 11 views
6

在ASP.NET MVC3中,我试图设置验证错误帮助器方法设置的css类。 (不是this question,接受的答案只是ADDS类,我想完全覆盖它。)在查看MVC3源,我发现了HtmlHelper类的ValidationInputCssClassName属性。它是可设置的,如果设置,它将存储在存储提供程序中。该属性的get方法返回[提供者值] ?? [默认类名称]。System.Web.Webpages.Html中的HtmlHelper类与System.Web.Mvc命名空间

现在,如果您只是在您的控制器代码中输入HtmlHelper.ValidationInputCssClassNameMSDN entry),您会看到它是一个静态只读字段。原因是有两个HtmlHelper类,一个在System.Web.Mvc命名空间中,另一个在System.Web.Webpages.Html命名空间中。财产System.Web.Webpages.Html.HtmlHelper.ValidationInputCssClassNameMSDN entry)可以设置,但它似乎没有任何影响生成的代码,无论我设置它。

我错过了什么?这些类之间有什么区别?

回答

3

我并不积极,但我认为System.Web.WebPages.Html是用于使用ASP.net WebForms和Razor。

由于ValidationInputCssClassName等都是只读字段,我认为您要解决此问题的唯一方法是创建您自己的HtmlHelper扩展方法,以便您可以自定义此行为。

MSDN

的System.Web.WebPages命名空间包含用于 渲染和执行使用剃刀语法ASP.NET网页 制作的网页核心类。

+0

我正在使用剃刀。 Web.WebPages命名空间中的HtmlHelper属性显然是用来修改某些东西的。 Roll-your-own是最后的手段,我不想在每个MVC版本中移植更新! – Paul 2012-03-26 14:21:52

+0

@Paul我正在用Razor谈论WebForms。这只是一种猜测,但这就是它应该用于的原因。 ASP.net WebForms Razor页面。 – Dismissile 2012-03-26 14:40:58