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合法嗎? 是的,了解原因