System.Web.Webpages.Html与System.Web.Mvc命名空间中的HtmlHelper类

时间:2012-03-26 13:49:17

标签: asp.net asp.net-mvc asp.net-mvc-3 html-helper

在ASP.NET MVC3中,我试图设置验证错误辅助方法设置的css类。 (不是this question,接受的答案只是ADDS该类,我想完全覆盖它。)在查看MVC3源代码时,我在HtmlHelper类上找到了ValidationInputCssClassName属性。它是可设置的,如果设置,它会将值存储在存储提供程序中。属性的get方法返回[提供者值] ?? [默认类名]。

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

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

2 个答案:

答案 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