4,815 questions
Here is an example using Bootstrap using Razor Pages, will work with your project too.
public enum GenderTypes
{
Male,
Female,
Unspecified
}
Backend
public class RadioButton2Model : PageModel
{
/// <summary>
/// Get a random gender
/// </summary>
public void OnGet()
{
var values = Enum.GetValues(typeof(GenderTypes));
Random random = new();
GenderTypes gender = (GenderTypes)values.GetValue(random.Next(values.Length))!;
Gender = gender.ToString();
}
/// <summary>
/// Other option, an enum
/// </summary>
[BindProperty]
public string? Gender { get; set; }
public Person Person { get; set; } = new ();
public string[] Genders = Enum.GetNames(typeof(GenderTypes));
public void OnPost()
{
ViewData["Selected"] = Gender;
if (Enum.TryParse(Gender, true, out GenderTypes gender))
{
Person.Gender =gender;
}
Log.Information("Selection is {P1}", Gender);
}
}
View
<div class="container mt-4">
<form method="post" tabindex="0">
<div>
@foreach (string gender in Model.Genders)
{
<div class="form-check form-check-inline">
<input class="form-check-input" type="">
<input type="radio"
class="form-check-input"
asp-for="Gender"
value="@gender"
aria-description="@gender"
id="Gender@(gender)" />
<label class="form-check-label" for="Gender@(gender)">@gender</label>
</div>
}
</div>
<div>
<input type="submit" value="Submit" class="btn btn-primary mt-2" aria-description="submit your response" />
</div>
</form>
</div>