Как передать значение из формы в действие контроллера? - PullRequest
0 голосов
/ 15 марта 2020

Извините, я совсем новичок в ASP. NET MVC и у меня есть этот фрагмент кода в папке Home view (файл Index.cshtml):

@{
    ViewBag.Title = "Home Page";
}


<div class="row">
    <div class="col-md-4">
        <h2>Select file</h2>
        <p>
            <input id="File1" type="file" />
        </p>
        <p><a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkId=301865">Learn more &raquo;</a></p>
    </div>
    <div class="col-md-4">
        <h2>Upload to SQL Server</h2>
        <input type="button" title="Upload to SQL Server" value="Upload to SQL Server" onclick="location.href='@Url.Action("Upload2SS", "SystemLogs")'" />
    </div>
</div>

Когда Я нажимаю кнопку «Загрузить на SQL Сервер», я просто хочу передать значение File1 в действие контроллера:

public RedirectToRouteResult Upload2SS(FormCollection form)
{
    string filePath = form["File1"].ToString();
    var data = GetDataTabletFromCSVFile(filePath);
    return RedirectToAction("Index");
}

Однако я продолжаю получать System.NullReferenceException для filePath переменная; Может кто-нибудь сказать мне, что я скучаю, пожалуйста?

1 Ответ

1 голос
/ 15 марта 2020

В вашем коде много чего не хватает. Прежде всего вам необходимо использовать тег формы, в котором у вас будут входной файл и кнопка ввода.

Эта форма поможет вам отправить на сервер кучу информации. Точно так же вам нужно установить атрибут имени, из вашего кода вам не хватает атрибута имени во входном файле.

Вы можете искать Stackoverflow и найти любой ответ. Для отправки файла прочитайте этот ответ { ссылка }

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