Я разрабатываю форму в ASP.Net MVC, где она содержит <input type="file" />
, который не является обязательным в форме.
В моем контроллере у меня есть этот код:
[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult Create(FormCollection collection) {
...
//get uploaded file
if (Request.Files.Count > 0)
{
file = Request.Files["imgFileUpload"];
if (file.ContentLength == 0)
{
throw new InvalidOperationException("File contents are empty");
}
...
}
...
}
Теперь, когда пользователь загружает файл, который не имеет содержимого, форма вызывает исключение и запрашивает об этом пользователя - что ожидается.
Теперь, если пользователь решил, что он больше не собирается загружать какой-либо файл, и нажал кнопку отправки, все равно отобразится предыдущее исключение, что довольно странно.
Я попытался проверить значения для Request.Files
и заметил, что его счетчик все еще равен 1 ... он все еще думает, что там есть файл, учитывая, что пользователь не поместил файл в <input type="file" />
контроль.
Кто-нибудь сталкивался с этим? Если да, какие шаги вы предприняли, чтобы не допустить повторного выполнения предыдущего исключения?
Большое спасибо!