Входной файл MVC 3 всегда нулевой - PullRequest
3 голосов
/ 05 сентября 2011

Я добавил поле входного файла, но оно всегда равно нулю на контроллере. Чего мне не хватает?

Вот код как для моего вида, так и для контроллера.

вид:

...
@using (Html.BeginForm())
{
    ...

    <input type=file name="file" id="file" class="post-attachment" />

    ...
}

Контроллер:

[HttpPost]
public ViewResult _Details(HttpPostedFileBase file, ViewTopic viewTopic, string SearchField, string submitBtn)
{
    // save file to server
    if (file != null && file.ContentLength > 0)
    {
        var fileName = DateTime.Today.ToString("yy.MM.dd") + Path.GetFileName(file.FileName);
        var path = Path.Combine(Server.MapPath("~/Attachments"), fileName);
        file.SaveAs(path);
    }

...
}

Ответы [ 2 ]

4 голосов
/ 05 сентября 2011

Вам необходимо явно указать enctype формы:

@using(Html.BeginForm("action", "controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    ...
}
1 голос
/ 05 сентября 2011

Вам нужно изменить форму на что-то вроде -

@using (Html.BeginForm("Upload", "File", FormMethod.Post, new { enctype = "multipart/form-data" }))
{ 
    <p>
        <input type="file" id="fileUpload" name="fileUpload"/>
    </p>
    <p>
        <input type="submit" value="Upload file" /></p> 
}

В этом вопросе есть дополнительная информация (включая пример выше) - Html помощник для

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...