Входные данные флажка всегда возвращают ложное значение - PullRequest
0 голосов
/ 16 ноября 2018

Я использую asp.net core 2.1, и у меня есть простой вид с формой, такой как:

@model Security.WebUi.Pages.AssignClaimToUserModel

<form method="post">
    <div>
        <label>User:  </label>
        <select asp-for="UserId" asp-items="@Model.UserList">
            <option>Please select one</option>
        </select>
    </div>
    <div>
        <label>Role?</label>
        <input type="checkbox" name="IsRole" id="isRole" />
    </div>
    <div>
        <label>Claim Type</label>
        <input type="text" name="ClaimType" id="claimType" />
    </div>
    <div>
        <label>Claim Value</label>
        <input type="text" name="ClaimValue" />
    </div>
    <button type="submit">Submit</button>
</form>

Как вы можете видеть, у меня есть флажок с IsRole свойством

Так что в моей модели у меня есть логическое значение:

 public class ClaimToUserdModel
    {
        public string ClaimType { get; set; }
        public string ClaimValue { get; set; }
        public Guid UserId { get; set; }
        public bool IsRole { get; set; }
    }

, затем в методе, который я вызываю как:

public async Task<IActionResult> OnPost(ClaimToUserdModel model)
            {
              ....
            }

Но он всегда выдает false, его не волнует проверено или нет.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

У меня возникла та же проблема, я исправил ее, написав html-флажок checkbox, присвоив ему имя, совпадающее с именем свойства, и value = true, если флажок не установлен, не нужно беспокоиться, так как он все равно не будет отправлен в твоем случае это будет

<input type="checkbox" name="Remember" value="true" checked="@Model.YourmodelPropertyname"/>

также вы устанавливаете флажок проверенное значение свойства с помощью jquery.

0 голосов
/ 16 ноября 2018

Вы можете использовать try:

<input type="checkbox" name="IsRole" id="isRole" value="true" />

Кажется, вы используете ASP.NET Core Razor Page, вы также можете обратиться к приведенному ниже образцу:

@page
@model razorpages.Pages.AssignClaimToUserModel
@{
    ViewData["Title"] = "AssignClaimToUser";
}

<form method="post">

<div>
    <label>Role?</label>      
    <input asp-for="ClaimToUserdModel.IsRole" name="IsRole">
</div>

<button type="submit">Submit</button>

Код позади:

public class AssignClaimToUserModel : PageModel
{
    public ClaimToUserdModel ClaimToUserdModel;
    public void OnGet()
    {

    }

    public async Task<IActionResult> OnPost(ClaimToUserdModel model)
    {
        return null;
    }
}

public class ClaimToUserdModel
{
    public string ClaimType { get; set; }
    public string ClaimValue { get; set; }
    public Guid UserId { get; set; }
    public bool IsRole { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...