DropDownList в сочетании с загрузкой файлов в asp.net mvc - PullRequest
0 голосов
/ 07 апреля 2009

У меня есть функция загрузки файла в моем приложении asp.net mvc, которая позволяет пользователям загружать файл xslx, содержащий данные, которые должны быть сохранены в базе данных. Эти данные могут относиться к одной из многих категорий. Мне нужно уметь различать, к какой категории должны относиться поступающие данные, поэтому я подумал, что выпадающий список идеально подойдет для этой работы. Однако я не знаю, как получить в списках выбранное значение, когда пользователь публикует данные. Вот как выглядит код формы:

    <form action="/Import/UploadFiles/" method="post" enctype="multipart/form-data">
    <fieldset id="fileImport">
        <legend>Importinställningar</legend>
        <label for="file">Importfil:</label>
        <input type="file" id="file" name="file" />
        <%= Html.DropDownList("Name", (IEnumerable<SelectListItem>)ViewData["assignments"]) %>
        <p>
            <input type="submit" value="Spara"/>
            <input type="button" value="Avbryt" onclick="window.location.href='/'" />
        </p>
    </fieldset>
</form>

Поскольку я имею дело со сценарием загрузки файла, у меня нет ссылки на действие, которую я могу использовать для передачи данных в контроллер, а скорее ввод с типом submit.

Как мне прочитать значение выбора из выпадающего списка, чтобы его выбранное значение могло быть передано в контроллер?

1 Ответ

0 голосов
/ 08 апреля 2009

Есть несколько способов сделать эту работу. Сначала добавьте строковый параметр с именем Name в метод UploadFiles. Связыватель по умолчанию заполнит его из значения формы с тем же именем. В качестве альтернативы, вы можете использовать ValueProvider внутри контроллера - если вы используете одно и то же действие для визуализации представления и ответа на сообщение, например - для извлечения значения параметра с именем Name.

public ActionResult UploadFiles( string Name )
{
    ...
}

или

public ActionResult UploadFiles()
{
     string name = this.ValueProvider.ContainsKey("Name")
                         ? this.ValueProvider[key].AttemptedValue
                         : null;

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