47 lines
1.7 KiB
C#
47 lines
1.7 KiB
C#
|
using System.Diagnostics.CodeAnalysis;
|
|||
|
namespace System.Web.ModelBinding {
|
|||
|
|
|||
|
[AttributeUsage(AttributeTargets.Parameter, Inherited = false, AllowMultiple = false)]
|
|||
|
public sealed class ControlAttribute : ValueProviderSourceAttribute {
|
|||
|
|
|||
|
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "ID", Justification = "Legacy way of referring to ControlID.")]
|
|||
|
public string ControlID {
|
|||
|
get;
|
|||
|
private set;
|
|||
|
}
|
|||
|
|
|||
|
public string PropertyName {
|
|||
|
get;
|
|||
|
private set;
|
|||
|
}
|
|||
|
|
|||
|
public ControlAttribute()
|
|||
|
: this(null, null) {
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "ID", Justification = "Legacy way of referring to ControlID.")]
|
|||
|
public ControlAttribute(string controlID)
|
|||
|
: this(controlID, null) {
|
|||
|
}
|
|||
|
|
|||
|
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "ID", Justification = "Legacy way of referring to ControlID.")]
|
|||
|
public ControlAttribute(string controlID, string propertyName) {
|
|||
|
ControlID = controlID;
|
|||
|
PropertyName = propertyName;
|
|||
|
}
|
|||
|
|
|||
|
public override IValueProvider GetValueProvider(ModelBindingExecutionContext modelBindingExecutionContext) {
|
|||
|
if (modelBindingExecutionContext == null) {
|
|||
|
throw new ArgumentNullException("modelBindingExecutionContext");
|
|||
|
}
|
|||
|
|
|||
|
return new ControlValueProvider(modelBindingExecutionContext, PropertyName);
|
|||
|
}
|
|||
|
|
|||
|
public override string GetModelName() {
|
|||
|
return ControlID;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|