Проверка загрузки файла MVC - PullRequest
1 голос
/ 22 марта 2011

У меня есть простая ситуация, когда у меня есть страница, которая загружает файлы для некоторого импорта. На данный момент все, что у меня есть, - это загрузка файла на моей странице.

вот так выглядит мой контроллер get

public ActionResult FileUpload()
{
    return View();
}

Вот так выглядит мой взгляд

@{
     ViewBag.Title = "FileUpload";
 }
<h2>FileUpload</h2>
<form action="/Home/FileUpload" method="post" enctype="multipart/form-data">
<input type="file" id="newFile" name="newFile" />
<input type="submit" id="submitButton" value="Submit" />
</form>

и вот как выглядит мой пост

[HttpPost]
    public ActionResult FileUpload(HttpPostedFileBase newFile)
    {
        if (newFile.ContentLength > 0)
        {
            //do stuff here
        }
        return View("Index");
    }

Вы, конечно, заметите, что здесь нет упоминания о модели, поскольку я не могу найти способ создать модель для этой ситуации. Я хотел бы провести несколько базовых проверок в духе «пожалуйста, выберите файл перед загрузкой», вот и все.

Есть ли способ достичь этого?!

Заранее спасибо

Будет

Ответы [ 2 ]

3 голосов
/ 28 апреля 2011

Создайте класс модели со строковым свойством newFile и поместите в него Обязательный.

В контроллере принимайте не HttpPostedFile, а класс вашей модели.

1 голос
/ 13 июля 2012

Вы должны добавить проверку на стороне клиента вручную:

<input type="file" data-val="true" data-val-required="please select a file" name="file" />
@Html.ValidationMessage("file")
...