Есть ли способ доступа к атрибутам параметра действия контроллера, который в настоящее время обрабатывается из IModelBinder.BindModel()
?
В частности, я пишу связыватель для привязки данных запроса к произвольному типу Enum
(указывается в качестве параметра шаблона для подшивки модели), и я хотел бы указать для каждого параметра действия контроллера, для которого я хочу использовать эту подшивку, имя значения HTTP-запроса для получения значений Enum
из.
Пример:
public ViewResult ListProjects([ParseFrom("jobListFilter")] JobListFilter filter)
{
...
}
и связыватель модели:
public class EnumBinder<T> : IModelBinder
{
public object BindModel(ControllerContext controllerContext,
ModelBindingContext bindingContext)
{
HttpRequestBase request = controllerContext.HttpContext.Request;
// Get the ParseFrom attribute of the action method parameter
// From the attribute, get the FORM field name to be parsed
//
string formField = GetFormFieldNameToBeParsed();
return ConvertToEnum<T>(ReadValue(formField));
}
}
Я подозреваю, что в рабочем процессе запроса может быть другая, более подходящая точка, в которой я бы указал значение атрибута.