Evento Blazor onchange con menú desplegable de selección

asp.net-core blazor c#

Pregunta

Así que me he quedado atascado tratando de hacer que se active un simple cambio cuando cambia un valor desplegable de selección. Al igual que:

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

con el método que se llama:

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

El resultado que obtengo, no importa cómo intente reorientarlo, es este error en el navegador.

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

¿Hay algo obvio y clave que me falta? Porque tengo un botón en el evento de clics que funciona bien en la misma página.

Respuesta aceptada

Tu respuesta debe estar en el cshtml:

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

Entonces tus funciones deberían verse como:

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

También puedes usar un enlace ...

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

pero onchange = @ DoStuff le permite realizar la lógica en la selección.


Respuesta popular

Para empezar, no estás usando la sintaxis de enlace correcta:

onchange="@dostuff"

Observe la @




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué