Blazor 專案很特別,寫起來很像以前的老 ASP,像是下列寫法:

@page "/GetList"

@using WebUrlListBlazorAP.Data
@inject WebUrlDataService service

<h3>GetList</h3>

<table class="table">
    <thead>
        <tr>
            <th>Name</th>
            <th>Url</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in list)
        {
            <tr>
                <td>@item.Name</td>
                <td><a href="@item.Url" target="_blank">@item.Url</a></td>
            </tr>
        }
    </tbody>
</table>

@code {
    private List<WebUrlData> list = new List<WebUrlData>();

    protected override async Task OnInitializedAsync()
    {
        list = service.GetList();
    }
}

這個頁面就是從 service 取得資料然後輸出至網頁上,而新增資料則是下列寫法:

@page "/Insert"
<h3>InserUrlData</h3>

@using WebUrlListBlazorAP.Data
@inject WebUrlDataService service

<EditForm Model="@urlModel" OnSubmit="@Insert">
    <span>名稱</span><InputText @bind-Value="urlModel.Name" /> <br />
    <span>網址</span><InputText @bind-Value="urlModel.Url"></InputText> <br />
    <button type="submit">新增</button>
</EditForm>

@code {

    private WebUrlData urlModel = new();

    private void Insert()
    {
        service.Insert(urlModel.Name, urlModel.Url);
        urlModel.Name = string.Empty;
        urlModel.Url = string.Empty;
    }
}

雖然基本的 html 還是需要了解,但某方面來說可以省去寫 JS,對於專攻後端的工程師來說很省事。

完整程式碼:

Demo Code

參考資料