ModelState
заполняется дополнительными ключами, которых нет в значениях записей. Странно то, что это происходит только для обязательных string
свойств, а не для int
.
. См. Эту модель:
public class Employee {
[Required] public int Id { get; set; }
[Required] public string Name { get; set; }
[Required] public string School { get; set; }
[Required] public int Age { get; set; }
}
Так я объявил это на странице Razor. code:
[BindProperty] public Employee Item { get; set; }
Это код формы моего просмотра Razor Page:
<form method="post">
@Html.LabelFor(x => x.Item.Id)
@Html.TextBoxFor(x => x.Item.Id)
<hr />
@Html.LabelFor(x => x.Item.Name)
@Html.TextBoxFor(x => x.Item.Name)
<hr />
<button type="submit">Send</button>
</form>
Мой первый вопрос о том, как заполняется ModelState
. Обратите внимание, что, несмотря на то, что у класса 4 есть обязательные свойства, я использую только два из них (Id
и Name
). Когда я отлаживаю метод OnPost()
, несмотря на то, что форма запроса передает только эти свойства, ModelState
заполняется дополнительным свойством School
. Почему School
(string
type) вставляется в ModelState
, а почему Age
(int
type) - нет?
Мой второй вопрос - как предотвращать School
передается ModelState
, так как для меня не имеет значения, с этой точки зрения, точно так же Age
также не имеет значения.