3
有沒有辦法從IModelBinder.BindModel()
中訪問當前正在處理的控制器動作參數的屬性?如何獲取我想要綁定到IModelBinder的參數的屬性?
特別是,我正在爲綁定請求數據寫入任意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));
}
}
我懷疑有可能是在我將提供的屬性值的請求工作流另一個更適當,點。