Мой 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);
}