Request.Form против IFormCollection в MVC Core - PullRequest
0 голосов
/ 29 апреля 2020

Мой MVC проект имеет представление, позволяющее пользователю вводить данные в текстовое поле, отправлять форму и заставлять контроллер искать в базе данных эту строку, а затем выводить результаты в представление. У меня это работает 2 разными способами, через Request.Form и IFormCollection. Кажется, они оба работают. Какая разница и какую мне использовать?

Я прикрепил страницу просмотра и код контроллера.

@model List<AirSicknessBags.Models.Bagsmvc>
@{
    ViewData["Title"] = "Bags";
}
 
<h1>Bag List</h1>
 
@using (Html.BeginForm("Index", "Bags", FormMethod.Post))
 
{
    <h2>Find Airline</h2>
    <input type="text" id="Airline" name="Airline" />
    <input type="submit" />
}
 
@*Display the data returned*@
@if (Model != null)
{
    @foreach (var x in Model)
    {
        <h3>@x.Airline</h3>
        <h4>@Html.Raw(x.Detail)</h4>
    }
}

Вот фрагмент кода контроллера. И авиакомпания, и авиакомпания2 работают нормально.

        // Post: Bags
        [HttpPost]
        public async Task<IActionResult> Index(IFormCollection collection)
        {
            string airline = Request.Form["Airline"].ToString();
            string airline2 = collection["Airline"].ToString();
            IActionResult bags = await GetAllFromDatabase(airline);

            var okResult = bags as OkObjectResult;
            var baglist = okResult.Value as List<Bagsmvc>;

            return View(baglist);
        }

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