fileUpload в asp.net MVC3.0 - PullRequest
       1

fileUpload в asp.net MVC3.0

0 голосов
/ 14 марта 2012

Я хочу использовать fileUpload в моем представлении MVC, которое является страницей .aspx. Я хочу получить путь к объекту в моем контроллере.

<% using (Html.BeginForm("AddClient","Client",FormMethod.Post,new {enctype ="multipart/form-data" }))
   { %>
<div class="float-left">
<%: Html.Label("BAAFile Path") %>
<br />
<input type="file" name="file" id="file" />
<%: Html.ValidationMessageFor(model => model.BAAFilePath) %>--%>
</div>
<% } %>

внизу страницы есть кнопка Сохранить данные (нет кнопки рядом с контролем загрузки файла).

Теперь я хочу получить путь управления загрузкой файлов на мой контроллер.

    [HttpPost]
    [ButtonName(Name = "Save")]
    public ActionResult AddClient(ClientService.ClientDto client,HttpPostedFileBase file)
    {
        if (file != null && file.ContentLength > 0)
            {
                // extract only the fielname
                var fileName = Path.GetFileName(file.FileName);

            }
    }

Теперь я хочу получить путь к файлу

     var fileName = Path.GetFileName(file.FileName);

в объект «ClientService.ClientDto», который является «клиентом».

     client.BAAFilePath=fileName 

но я получаю нулевые данные в "var fileName".

Использование следующего кода в «ActionResult AddClient (ClientService.ClientDto client)»

if (file != null && file.ContentLength > 0) 
    {
        // extract only the fielname
        var fileName = Path.GetFileName(file.FileName);

    }

я что-то упустил?

1 Ответ

1 голос
/ 14 марта 2012

Я бы предложил связать вашу форму с моделью представления, а затем модель представления с DTO.Ваша модель представления должна иметь свойство «Файл» типа HttppostedFileBase, тогда вы будете правильно связывать все при публикации формы.Убедитесь, что ваша форма имеет enctype = "multipart / form-data"

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