Blazor onchange事件与选择下拉列表

asp.net-core blazor c#

因此,当选择下拉值更改时,我一直试图让一个简单的onchange触发。像这样:

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

使用被调用的方法:

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

无论我如何尝试重新定位它,我得到它的结果是浏览器中的这个错误。

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

有什么明显的东西和关键,我错过了吗?因为我有一个按钮onclick事件,可以在同一页面中正常工作。

一般承认的答案

你的答案应该在cshtml中:

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

那你的@functions应该是这样的:

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

你也可以使用绑定......

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

但是onchange = @DoStuff允许你在选择时执行逻辑。


热门答案

对于初学者,您没有使用正确的绑定语法:

onchange="@dostuff"

注意@




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因