Обработка 2 кнопок отправка действий в одном представлении / форме - ASP.NET MVC 2 RTM

StackOverflow https://stackoverflow.com/questions/2444245

Вопрос

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

В этом представлении у меня также есть 2 кнопки:один для загрузки файла, а другой для загрузки последнего импортированного файла.

В моем контроллере я создал 2 метода действий:Импорт и экспорт.

Как мне удалось перенаправить каждое нажатие кнопки на соответствующий метод действия в моем контроллере?

Я пробовал Html.ActionLink:

<%= Html.ActionLink("Upload", "Import", "OracleFile")%>
<%= Html.ActionLink("Download", "Export", "OracleFile")%>

HTML.ActionLink не справился с задачей.Ссылки на действия приводили меня к правильным методам действия, но они генерировали запрос GET.Этот способ запроса.Файлы.Количество = 0.

Мне нужен запрос POST.

Примечание:самая интригующая часть заключается в том, что загрузка работала, и внезапно она перестала работать.Я видел, что у некоторых людей возникает та же проблема с задачами FileUpload, в которых запрос.Files всегда пуст.Я думаю, что он пустой, потому что вам нужна запись на сервер.Не так ли?

Это было полезно?

Решение

может быть, это натолкнет вас на мысль:

Вид:

<form enctype="multipart/form-data" method="post" action="/Media/Upload/Photo">
    <input type="file" name="file" id="file" /> 
    <input type="submit"  name= "submitImport" value="Upload" />
    <input type="submit" name = "submitExport"  value="Download" />
</form>

контроллер:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Action (FormCollection formCollection)
        {
            if (formCollection["submitImport"] != null)
            {
                return Import(formCollection);
            }
             if (formCollection["submitExport"] != null)
            {
                return Export(formCollection);
            }
        }

в Экспорт и Импорт являются ли соответствующие действия

Другие советы

Вы должны использовать форму "multipart /form-data" и отправить форму.Нет ссылки на действие.

<form enctype="multipart/form-data" method="post" action="/Media/Upload/Photo">
    <input type="file" name="file" id="file" /> 
    <input type="submit" value="Upload" />
</form>

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

http://www.w3schools.com/jsref/dom_obj_fileupload.asp

Взгляните на это сообщение в блоге Скотта Ханселмана.http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top