Home > Blockchain >  How to add Dropdownlist in Register.cshtml
How to add Dropdownlist in Register.cshtml

Time:12-20

I scaffold the Identity Register.cshtml page. This page is using razor. Here is part of the form..

<form id="registerForm" asp-route-returnUrl="@Model.ReturnUrl" method="post">
        <h2>Create a new account.</h2>
        <hr />
        <div asp-validation-summary="ModelOnly" ></div>

         <div >
            <input asp-for="Input.FullName"  aria-required="true" />
            <label asp-for="Input.FullName"></label>
            <span asp-validation-for="Input.FullName" ></span>
        </div>
        <br />
        <div >
            <input asp-for="Input.Bank"  aria-required="true" />
            <label asp-for="Input.Bank"></label>
            <span asp-validation-for="Input.Bank" ></span>
        </div>
        <br />
        <button id="registerSubmit" type="submit" >Register</button>
        //.......
</form>

I tried to populate a dropdownlist for item Input.Bank . I figure I should do a ViewBag in OnGetAsync

public async Task OnGetAsync(string returnUrl = null)
    {
        ReturnUrl = returnUrl;
        ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
    }

But it wont allow to. How can I populate the dropdownlist? The value of the dropdownlist will come from a database table.

CodePudding user response:

You can try to create a property into the PageModel:

[BindProperty]
        public List<SelectListItem> DropDown { get; set; }
public async Task OnGetAsync(string returnUrl = null)
    {   
        //set DropDown with database here
        DropDown = xxxxxx;
        ReturnUrl = returnUrl;
        ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
    }

View(bind DropDown data to Input.Bank):

<div >
        <select asp-for="Input.Bank" aria-required="true" asp-items="@Model.DropDown"></select>
        <label asp-for="Input.Bank"></label>
        <span asp-validation-for="Input.Bank" ></span>
    </div>
  • Related