Получение 0 из значения флажка в asp.net MVC - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь получить значение (1 или 0) из флажка, используя FormCollection.Но даже когда я проверяю это, я получаю 0 в режиме отладчика.

Здесь установлен флажок.

<label class="form-check-label">
     <input id="UbankInsurance" name="UbankInsurance" value="1" type="checkbox"/> Yes
</label>

и вот способ его сбора.

[HttpPost]
public ActionResult Edit(FormCollection fc)
{
   int ublInsurance = Convert.ToInt32(fc["UbankInsurance"]);
}

и далее я собираюсь передать это значение в столбец базы данных, который имеет bit тип данных

1 Ответ

0 голосов
/ 15 декабря 2018

Ваш код выглядит довольно корректно, поэтому я предполагаю, что вы не передали свой флажок в form для начала.Кроме того, вам нужно проверить это значение для null.Если флажок установлен, значение "1" представляется в виде строки.Если этот флажок снят, будет возвращено значение null.

Вот рабочий пример:

<h3>Submitted value: @TempData["val"]</h3>

@using (Html.BeginForm("GetCheckbox", "Home", FormMethod.Post))
{
    <label class="form-check-label">
        <input id="UbankInsurance" name="UbankInsurance" value="1" type="checkbox" />
        Yes
    </label>

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

Метод контроллера:

[HttpPost]
public ActionResult GetCheckbox(FormCollection form)
{
    var checkboxChecked = form["UbankInsurance"]; //get the checkbox value
    if(checkboxChecked == null) //if it is unchecked it will be null
    {
        checkboxChecked = "0"; //set it to a parsable value instead
    }
    //convert 0 or 1 to int and return it to view
    TempData["val"] = Convert.ToInt32(checkboxChecked); 
    return View("Index");
}

Пожалуйста, обратите внимание, что яиспользовали HomeController в демонстрационном приложении, поэтому убедитесь, что вы указали фактические значения в терминах методов действий и имен контроллеров.

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