Существует множество концепций, которые помогут вам разобраться.Давайте начнем с двух основных вариантов.Обновление даты с помощью простого постбэка или JavaScript и Ajax?
ОК, давайте перейдем к первому, простому процессу создания.
Вам потребуется таблица базы данных для обновления.Вы можете создать модель Entity Framework из базы данных.Ваше приложение будет взаимодействовать с этим обновлением таблицы.Это «М» или модель в MVC.Вам также понадобится создать контроллер («C» в MVC) и представление («V» в MVC).
Контроллер часто содержит два метода для выполнения работы.Когда пользователь переходит на веб-страницу, он получает начальные данные.Все, что это делает, это возвращает представление с нулевой моделью, поэтому все элементы управления редактирования находятся в своем состоянии по умолчанию - например, пустое текстовое поле
[HttpGet]
public ActionResult Create()
{
return View();
}
Когда представление сохраняется пользователем, другой метод (с тем жеимя) называется.Обратите внимание, что это метод POST, поэтому все данные в FORM упакованы в ModelState.MVC свяжет вашу модель для вас с параметрами метода - вы даже можете сказать, какие из них включить.В этой версии используется Async.
ФОРМА в вашем представлении должна иметь также токен подделки, который является первым (скрытым) полем, возвращаемым и используемым системой MVC - вы обычно его не видите.
Предполагая, что данные действительны, они сохраняются в базе данных (у меня обычно есть базовая бизнес-модель для выполнения работы по поддержанию чистоты контроллера).Если модель недопустима (например, отсутствует поле), существующая модель передается обратно в представление для пользователя, чтобы сделать еще один ход, вместе с любыми сообщениями об ошибках.Посмотрите на аннотации данных, чтобы узнать, как определить допустимые диапазоны значений.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "YourName")] MyData model)
{
if (ModelState.IsValid)
{
await _bs.MyData_UpdateAsync(model);
return RedirectToAction("Index");
}
// return with any errors
return View(model);
}
Наконец, вам понадобится представление, из которого HTML динамически генерируется и передается в браузер клиента
@model MyApp.Models.MyData
@{
ViewBag.Title = "Create Something";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="container w-50">
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.YourName, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => model.YourName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.YourName, "", new { @class = "text-danger" })
</div>
<div class="d-flex">
<div class="ml-auto">
<input type="submit" value="Create" class="btn btn-primary btn-sm btn-default" />
</div>
</div>
</div>
}
</div>