Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Blazor/Razor: InputSelect with Enum?

Tags:

razor

blazor

How can I use the values of an enum class as options for an InputSelect?

Example enum:

public enum Test
{
    Test1,
    Test2
}

I am using with Blazor with Razor components.

like image 940
stefan.at.wpf Avatar asked May 06 '26 14:05

stefan.at.wpf


1 Answers

Here's a working sample how to use enum in InputSelect component:

<EditForm EditContext="@EditContext">
    <DataAnnotationsValidator />

    <div class="form-group">
        <label for="name">Enter your Name: </label>
        <InputText Id="name" Class="form-control" @bind-Value="@comment.Name"></InputText>
        <ValidationMessage For="@(() => comment.Name)" />

    </div>
    <div class="form-group">
        <label for="body">Select your country: </label>

        <InputSelect @bind-Value="@comment.Country" >
          
            @foreach (var country in Enum.GetValues(typeof(Country)))
            {
            
                <option value="@country">@country</option>
            }
        </InputSelect>
               
        <ValidationMessage For="@(() => comment.Country)" />
    </div>

    <p>
        <button type="submit">Submit</button>
    </p>
</EditForm>
   
@code
    {
    private EditContext EditContext;
    private Comment comment = new Comment();

   
    protected override void OnInitialized()
    {
        EditContext = new EditContext(comment);


        base.OnInitialized();
    }

    public enum Country
    {
        USA = 1,
        Britain,
        Germany,
        Israel

    }
    public class Comment
    {

        public string Name { get; set; }
        public Country Country { get; set; }
    }
    
}

Hope this helps...

like image 66
enet Avatar answered May 09 '26 14:05

enet



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!