在ASP.NET MVC3中,我试图设置验证错误辅助方法设置的css类。 (不是this question,接受的答案只是ADDS该类,我想完全覆盖它。)在查看MVC3源代码时,我在HtmlHelper类上找到了ValidationInputCssClassName
属性。它是可设置的,如果设置,它会将值存储在存储提供程序中。属性的get方法返回[提供者值] ??
[默认类名]。
现在,如果您只是在控制器代码中键入HtmlHelper.ValidationInputCssClassName
(MSDN entry),您将看到它是一个静态只读字段。原因是有两个HtmlHelper类,一个在System.Web.Mvc
命名空间中,另一个在System.Web.Webpages.Html
命名空间中。可以设置属性System.Web.Webpages.Html.HtmlHelper.ValidationInputCssClassName
(MSDN entry),但无论我在何处设置它,它似乎都不会对生成的代码产生任何影响。
我错过了什么?这些类有什么区别?
答案 0 :(得分:3)
我不是肯定的,但我认为System.Web.WebPages.Html
是使用带有Razor的ASP.net WebForms。
由于ValidationInputCssClassName
等都是只读字段,因此我认为解决这个问题的唯一方法是创建自己的HtmlHelper扩展方法,以便自定义此行为。
来自MSDN:
System.Web.WebPages命名空间包含使用的核心类 渲染和执行使用ASP.NET网页构建的页面 使用Razor语法。
答案 1 :(得分:3)
查看命名空间描述,看来其中一个是为Razor设计的,并且打算与WebMatrix一起使用。
参考:http://msdn.microsoft.com/en-us/library/gg549171(v=vs.99).aspx
此外:
System.Web.Mvc命名空间包含用于创建HTML元素的类。
此命名空间中的类型位于System.Web.WebPages程序集中,与System.Web.Mvc程序集中的等效类型相同。
参考:http://msdn.microsoft.com/en-us/library/system.web.mvc(v=vs.99).aspx