由于未知原因 HiddenInputAttribute (https://msdn.microsoft.com/en-us/library/system.web.mvc.hiddeninputattribute(v=vs.118).aspx)无法在字段上使用。
见
[AttributeUsageAttribute(AttributeTargets.Class | AttributeTargets.Property,
AllowMultiple = false, Inherited = true)]
public sealed class HiddenInputAttribute : Attribute
由于属性类已被密封,因此无法通过继承重新定义。
我已经考虑过(“临时”)绕过 GetType 这样的方法
public new Type GetType()
{
return typeof(System.Web.Mvc.HiddenInputAttribute);
}
新属性类中的但显然 Enumerable.OfType(IEnumerable)等方法不依赖 GetType 实现,因此不符合条件的方式。
我在某处看到由于性能原因而密封的属性。 HiddenInputAttribute
答案 0 :(得分:1)
如果您在DisplayAttribute或DataTypeAttribute查找实例,您会发现它们可用于字段。
是的,这使它成为一个有趣的问题,但仍然没有实用价值。
当您查看命名空间时,您会看到[Display()]
,DataType())]
,[StringLength()]
和[Key]
都来自System.ComponentModel.DataAnnotations
。
[HiddenInputField]
属性来自Microsoft.AspNetCore.Mvc
命名空间。
ComponentModel属性较旧,针对更多应用程序区域,其中一些可能使用字段。但我认为主要是他们的年龄在这里。
MVC属性旨在与该平台的ModelBinding一起使用并排除字段。如果你能够在一个字段上使用它,你仍然无法将它绑定到任何东西。