У меня есть контроллер, который обрабатывает загрузку файлов.В конечном итоге я хотел бы иметь возможность создавать атрибуты для украшения действий моего контроллера, например [HttpPostedFileType("zip")]
или что-то подобное.
В настоящее время я создал этот метод расширения, который я использую в действии.
public static string GetFileExtension(this HttpPostedFileBase file)
{
if (!file.FileName.Contains('.'))
throw new FormatException("filename does not contain extension");
return file.FileName.Split(".".ToCharArray()).Last();
}
Сигнатура действия:
[HttpPost]
public ActionResult Shapefile(HttpPostedFileBase file)
{
file.GetFileExtension()
...
}
Я начал создавать атрибут HttpPostedFileTypeAttribute и думалЯ бы переопределил метод OnActionExecuting и вызвал бы расширение.В этом случае с опубликованными файлами я могу получить запрос Http и перебрать файлы, но с привязкой модели mvc, имеющей HttpPostedFileBase, или их перечисление намного чище, чем способ получения файлов asp 1.x.
Мой вопрос: могу ли я получить параметры в атрибуте при выполнении действия или они еще не связаны, поскольку жизненный цикл еще не достиг метода действия?Должен ли я создать модель со свойством HttpPostedFileBase и создать атрибут проверки?Рекомендации?