Ненавязчивая проверка ядра asp.net на необязательном поле

У меня есть модель с 2 полями, и оба не обязательны (тег [Обязательный] не используется).

На странице бритвы у меня есть ненавязчивые и jquery проверки JS файлы включены. Когда я не заполняю какое-либо значение и отправляю форму, я получаю сообщение об ошибке (на стороне клиента), в котором запрашивается последнее поле в моей форме.

Я искал, но не нашел подобную проблему, так как в модели /viewmodel нет обязательного тега, почему это необходимо на стороне клиента.

[Обновление 1: код добавлен]

Модель:

public class AppUser: IdentityUser
{
public string Name { get; set; }
public int Deposit { get; set; }
}

Посмотреть:

<form method="post">
    <div class="form-group">
        <label asp-for="@Model.AppUser.Deposit" class="control-label"></label>
        <input asp-for="@Model.AppUser.Deposit" type="text" class="form-control" />
        <span asp-validation-for="@Model.AppUser.Deposit" class="text-danger"></span>
    </div>

    <div class="form-group">
        <label asp-for="@Model.AppUser.Email" class="control-label"></label>
        <input asp-for="@Model.AppUser.Email" type="text" class="form-control" />
        <span asp-validation-for="@Model.AppUser.Email" class="text-danger"></span>
    </div>
</form>

контроллер:

public class SomeModel : PageModel
{
private readonly ApplicationDbContext _context;
private readonly UserManager<AppUser> _userManager;

[BindProperty]
public AppUser AppUser { get; set; }

public SomeModel(ApplicationDbContext context, UserManager<AppUser> userManager)
{
    _context = context;
    _userManager = userManager;
}

public async Task<IActionResult> OnGetAsync()
{
    //..some action
    return Page();
}

public async Task<IActionResult> OnPostAsync()
{
    //..some action
    return Page();
}
}

1 ответ

По умолчанию ненулевые типы, такие как int, double, byte,... требуются, если вы хотите, чтобы они были необязательными, вы должны использовать обнуляемый тип, например int?

Другие вопросы по тегам