Значение флажка, переданное в FormCollection MVC Форма - PullRequest
3 голосов
/ 22 января 2020

У меня есть FormCollection, возвращаемая обратно в контроллер, который обрабатывается, однако, значение передается обратно, если его true равно 'true,false', но если оно не проверено, это просто 'false'. В моем поле используются iChecks.

Строящийся объект выглядит следующим образом:

field.IsSelected = Convert.ToBoolean(form["Field.IsChecked"]);

Каков наилучший способ получить правильное значение?

Ответы [ 2 ]

2 голосов
/ 22 января 2020

Было бы лучше использовать связыватель модели для этой цели, это правильный способ сделать это в настоящее время, вы можете просто добавить логическое свойство в свой класс модели, а затем использовать вспомогательный флажок MVC.

public class YourViewModel
{
    public bool IsChecked { get; set; }
}

И ваш ActionMethod:

public async Task<ActionResult> Index(YourViewModel viewModel)
{
    field.IsSelected = viewModel.IsChecked;
}

И ваш взгляд примерно такой:

@using (Html.BeginForm("Index", "YourController", FormMethod.Post)) 
{

    <div>  
        @Html.CheckBox("IsChecked")
    </div>

    <input type="submit" value="Submit" /> 
} 
2 голосов
/ 22 января 2020

Я бы предложил сделать:

form["Field.IsChecked"].Contains("true"), который уже возвращает бул, поэтому вам не нужно конвертировать.

ИЛИ

Вы можете go:

Convert.ToBoolean(form["Field.IsChecked"].Split(',').First()); или Convert.ToBoolean(form["Field.IsChecked"].Split(',')[0]);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...