У меня есть набор переключателей на странице бритвы, и я хочу получить и использовать выбранное значение этих переключателей в моем коде на стороне сервера после отправки формы.HTML-код для переключателей:
<label><input class="boost_radio" onclick="boostNo(1)" asp-for="Boost_No.Number" type="radio" name="boostno" value=1 checked="checked" disabled="disabled" />1</label>
<label><input class="boost_radio" onclick="boostNo(2)" asp-for="Boost_No.Number" type="radio" name="boostno" value=2 disabled="disabled" />2</label>
<label><input class="boost_radio" onclick="boostNo(3)" asp-for="Boost_No.Number" type="radio" name="boostno" value=3 disabled="disabled" />3</label>
<label><input class="boost_radio" onclick="boostNo(4)" asp-for="Boost_No.Number" type="radio" name="boostno" value=4 disabled="disabled" />4</label>
<span asp-validation-for="Boost_No.Number"></span>
Я использую привязку модели для получения значения на стороне сервера:
public class BoostNo
{
[Required(ErrorMessage = "Select Number of Boost Units!")]
public int Number { get; set; }
}
Этот класс создается следующим образом:
[BindProperty]
public BoostNo Boost_No { get; set; }
К сожалению, каждый раз, когда я запускаю код, я получаю Boost_No.Number = 0
.Я попытался изменить тип данных на строку, но я просто получаю string = null
.
Я пытаюсь использовать переменную, привязанную к модели, в методе обработчика, назначенном форме, в которой содержатся переключатели.
Буду очень признателен, если кто-нибудь сможет мне помочь.Спасибо.
Редактировать:
Вот метод обработчика, в котором используется привязка модели:
public IActionResult OnPostSubmit()
{
//save data to sql db
SaveData();
//then some other unrelated stuff
}
И метод SaveData()
:
public void SaveData ()
{
//stuff
//now how the radio button values are actually used
for (int param_i = 1; param_i <= Boost_No.Number; param_i++)
{
//...
}
//then a paramaterized sql database query
}