Загрузить файл MVC - PullRequest
       2

Загрузить файл MVC

0 голосов
/ 12 января 2011

Хорошо.

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

даю код, любые идеи.

<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Cintas.Master" Inherits="System.Web.Mvc.ViewPage(Of iABC.Temp)" %>

<asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolderContenido" runat="server">
<%=Html.ValidationSummary("Se produjeron  errores al procesar la solicitud. Revise los errores e intente nuevamente.")%>

<% Using (Html.BeginForm("CargarArchivos", "ProcesosAutomaticos", FormMethod.Post, New With {.enctype = "multipart/form-data"}))%>
    <input type="file" name="abc" id="abc" />
    <input type="submit" value="Submit Button" />
<% End Using%>
</asp:Content>  



<AcceptVerbs(HttpVerbs.Post)> _  
Function CargarArchivos(ByVal abc As HttpPostedFileBase) As ActionResult  
  ' But abc always is Nothing  
  ' Continue code  
End Function  

С уважением.

Ответы [ 3 ]

2 голосов
/ 03 октября 2013

Вы можете использовать следующий код в вашем представлении:

<div id="Componentsdiv">
@using (Html.BeginForm(<action>, <Controller>, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <fieldset>
        <legend>Upload TXT File</legend>

        <div class="editor-label">
            <fieldset>
            <legend>File</legend>
                @Html.TextBoxFor(m => m.File1, "Select new file", new {  id="firstfile", type = "file"})
                @Html.ValidationMessageFor(m => m.File1)
            </fieldset>
        </div>
        <p>
            <input type="submit" id="submitbutton" hidden="hidden"/>
        </p>
    </fieldset>
}
</div>

Где File1 - объект HttpPostedFileBase.

Исходный источник для snip2code : ЗагрузитьФайл

1 голос
/ 12 января 2011

Ваш входной файл называется abc, поэтому ваш аргумент действия должен быть таким же:

Function CargarArchivos(ByVal abc As HttpPostedFileBase) As ActionResult  
    If abc IsNot Nothing AndAlso abc.ContentLength > 0 Then
        abc.SaveAs("C:\" & "a.txt")  
    End If  
    Return View()  
End Function 

Также вы используете неправильную перегрузку метода BeginForm. Это должно быть это :

<% Using (Html.BeginForm("CargarArchivos", "ProcesosAutomaticos", Nothing, FormMethod.Post, New With { .enctype = "multipart/form-data" }))%>

Обратите внимание, как аргументы инвертированы.

Вы также можете оформить заказ в этом блоге от Фила Хаака.

0 голосов
/ 13 января 2011

Ok.

Проблема была в том, что я использую MasterPages, поэтому в MasterPage у меня уже есть тег .Я просто добавляю enctype = "multipart / form-data" к основной форме и удаляю перегрузку BeginForm из вторичного представления

<% Using (Html.BeginForm("CargarArchivos", "ProcesosAutomaticos", New With {.enctype = "multipart/form-data"}, FormMethod.Post))%>  

Спасибо всем.Я надеюсь, что это поможет кому-то еще

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