Blazor onchange event con select dropdown

asp.net-core blazor c#

Domanda

Quindi sono stato bloccato cercando di ottenere un semplice onchange da attivare quando un valore di selezione a discesa cambia. Così:

<select class="form-control d-flex" onchange="(dostuff())">
    @foreach (var template in templatestate.templates)
    {
        <option value=@template.Name>@template.Name</option>
    }
</select>

con il metodo chiamato:

<select class="form-control d-flex" onchange="(dostuff())">
    @foreach (var template in templatestate.templates)
    {
        <option value=@template.Name>@template.Name</option>
    }
</select>

Il risultato che ottengo non importa quanto provo a riorientare è questo errore nel browser.

<select class="form-control d-flex" onchange="(dostuff())">
    @foreach (var template in templatestate.templates)
    {
        <option value=@template.Name>@template.Name</option>
    }
</select>

C'è qualcosa di ovvio e di chiave che mi manca? Perché ho un evento onclick del pulsante che funziona perfettamente nella stessa pagina.

Risposta accettata

La tua risposta dovrebbe essere nel cshtml:

<select onchange=@DoStuff>
    @foreach (var template in templates)
    {
        <option value=@template>@template</option>
    }
</select>

Quindi le tue @functions dovrebbero assomigliare a:

<select onchange=@DoStuff>
    @foreach (var template in templates)
    {
        <option value=@template>@template</option>
    }
</select>

Potresti anche solo usare un legame ...

<select onchange=@DoStuff>
    @foreach (var template in templates)
    {
        <option value=@template>@template</option>
    }
</select>

ma onchange = @ DoStuff ti permette di eseguire la logica sulla selezione.


Risposta popolare

Per i principianti non stai usando la sintassi di bind corretta:

onchange="@dostuff"

nota @




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché