В MVC3 (.Net) можно установить Bind атрибут типа параметра в сигнатуре метода для метода контроллера:влияющие на ModelBinders MVC с атрибутами
[HttpPost]
public ActionResult Edit([Bind(Exclude = "Name")]User user)
{
...
}
я написал несколько пользовательских ModelBinders. Было бы хорошо, чтобы иметь возможность влиять на их поведение в зависимости от атрибутов, установленных на тип параметра, например, так:
[HttpPost]
public ActionResult Edit([CustomModelBinderSettings(DoCustomThing = "True")]User user)
{
...
}
Однако, я не могу показаться, чтобы найти способ восстановить данные атрибутов. Это возможно?
Редактировать
Я пытаюсь получить доступ к AttributeData внутри пользовательского ModelBinder. В приведенном ниже примере «настройки» всегда равны нулю
public class TestBinder : DefaultModelBinder {
public override object BindModel(
ControllerContext controllerContext,
ModelBindingContext bindingContext) {
//Try and get attribute from ModelType
var settings = (CustomModelBinderSettingsAttribute)
TypeDescriptor.GetAttributes(bindingContext.ModelType)[typeof(CustomModelBinderSettingsAttribute)];
...
Спасибо за любую помощь.
Смотрите здесь: [Поиск пользовательских атрибутов свойств вид модели] [1] [1 ]: http://stackoverflow.com/questions/6205176/finding-custom-attributes-on-view-model-properties-when-model-binding – mwjackson