У меня есть приложение asp.net core 3.0 MVC.В этом приложении я могу перечислять, создавать, редактировать и удалять некоторые объекты (datarows).Существуют представления для всех этих операций:
- / Index.csltml (список всех элементов в просмотре данных)
- / Create.cshtml
- / Update.cshtml
- / Delete.cshtml
Все это, в т.ч.проверка работает очень хорошо.Но я не могу найти способ проверить элементы в индексе.Когда я редактирую элементы с помощью приложения, ввод проверяется, и я не могу ввести неверные данные.Но когда данные уже загружены неверно, подсказка не отображается при отображении представления.Особенно в представлении индекса, я хочу показать какой-то предупреждающий индикатор в каждой затронутой строке.
Есть ли способ проверки модели в представлении при ее повторении по списку?Или есть лучший подход для этого?
//Index View
@model List<SomeModel>
<tbody>
@foreach (SomeModel m in Model)
{
//... Validation here please!
}
</tbody>
public class SomeModel : IValidatableObject
{
[Required()]
public Guid ModelId;
[Required()]
[StringLength(50, MinimumLength = 5)]
public string ModelProperty:
...
more properties
...
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
}
}
public class SomeController
{
[HttpGet()]
public IActionResult Index()
{
List<SomeModel> _models = SomeModel.GetModels();
return View(_models);
}
}
[HttpPost()]
[Route("Create")]
public IActionResult HttpPostCreate(SomeModel _model)
{
// When posting data, the data arrives validated in the controller method
if (ModelState.IsValid)
{
bool success = SomeModel.CreateSetting(_model);
if (success)
{
return RedirectToAction("Index");
}
}
return View("Create", _model);
}