BlazorYapılacaklar listesi uygulaması oluşturma
Bu öğreticide, bir uygulamayı nasıl oluşturabileceğiniz ve değiştireceğiniz gösterilmektedir Blazor . Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:
- Yapılacaklar listesi Blazor uygulama projesi oluşturma
- RazorBileşenleri Değiştir
- Bileşenlerde olay işleme ve veri bağlamayı kullanma
- Bir uygulamada yönlendirmeyi kullanma Blazor
Bu öğreticinin sonunda, çalışan bir yapılacaklar listesi uygulamanız olacak.
Önkoşullar
Uygulama oluşturma Blazor
BlazorKomut kabuğunda adlı yeni bir uygulama oluşturun TodoList :
dotnet new blazorserver -o TodoList
dotnet new blazorwasm -o TodoList
Yukarıdaki komut, TodoList uygulamayı tutma seçeneğiyle adlı bir klasör oluşturur -o|--output . TodoListKlasör, projenin kök klasörüdür . TodoListAşağıdaki komutla klasörleri klasöre değiştirin:
cd TodoList
Yapılacaklar listesi uygulaması oluşturma Blazor
TodoRazor Aşağıdaki komutu kullanarak uygulamaya yeni bir bileşen ekleyin:dotnet new razorcomponent -n Todo -o Pages-n|--nameYukarıdaki komutta seçeneği, yeni bileşenin adını belirtir Razor . Yeni bileşen,Pagesseçeneğiyle birlikte proje klasöründe oluşturulur-o|--output.Önemli
Razor bileşen dosyası adları, büyük harfle bir ilk harf gerektirir. Klasörünü açın
PagesveTodobileşen dosyası adının büyük harfle başlatıldığını onaylayınT. Dosya adı olmalıdırTodo.razor.TodoBileşeni herhangi bir dosya düzenleyicisinde açın ve@pageRazor göreli URL 'si ile dosyanın en üstüne bir yönerge ekleyin/todo.Pages/Todo.razor:@page "/todo" <PageTitle>Todo</PageTitle> <h1>Todo</h1> @code { }Pages/Todo.razordosyasını kaydedin.TodoBileşeni gezinti çubuğuna ekleyin.NavMenuBileşen, uygulamanın düzeninde kullanılır. Düzenler, bir uygulamadaki içeriğin çoğaltılmasını önlemenize olanak sağlayan bileşenlerdir. Bileşen,NavLinkuygulama tarafından bileşen URL 'si yüklendiğinde uygulamanın kullanıcı arabiriminde bir ipucu sağlar.Bileşenin gezinti öğesi içeriğinde (
<nav class="flex-column">)NavMenu,<div>bileşen için aşağıdaki öğeyi ekleyinTodo.Shared/NavMenu.razoriçinde:<div class="nav-item px-3"> <NavLink class="nav-link" href="todo"> <span class="oi oi-list-rich" aria-hidden="true"></span> Todo </NavLink> </div>Shared/NavMenu.razordosyasını kaydedin.dotnet watch runKlasörden komut kabuğu 'ndaki komutu yürüterek uygulamayı derleyin ve çalıştırınTodoList. Uygulama çalıştırıldıktan sonra,Todouygulamanın gezinti çubuğundaki bağlantıyı seçerek yeni Todo sayfasını ziyaret edin/todo.Uygulamadan komut kabuğunu çalıştırın. Bir dosya her kaydedildiğinde, uygulama otomatik olarak yeniden oluşturulur ve Tarayıcıdaki sayfa otomatik olarak yeniden yüklenir.
TodoItem.csTodoListBir Todo öğesini temsil eden bir sınıfı tutmak için projenin (klasör) köküne bir dosya ekleyin. Sınıfı için aşağıdaki C# kodunu kullanınTodoItem.TodoItem.cs:public class TodoItem { public string? Title { get; set; } public bool IsDone { get; set; } }Not
dosyayı ve sınıfı oluşturmak için Visual Studio kullanıyorsanız
TodoItem.csTodoItemaşağıdaki yaklaşımlardan birini kullanın:- sınıf için Visual Studio oluşturduğu ad alanını kaldırın.
- yukarıdaki kod bloğundaki kopyala düğmesini kullanın ve Visual Studio üreten dosyanın tüm içeriğini değiştirin.
TodoBileşene dönün ve aşağıdaki görevleri gerçekleştirin:- Bloktaki Todo öğeleri için bir alan ekleyin
@code.TodoBileşen, Todo listesinin durumunu korumak için bu alanı kullanır. foreachHer Todo öğesini bir liste öğesi () olarak işlemek için sıralanmamış liste işaretlemesi ve bir döngüsü ekleyin<li>.
Pages/Todo.razor:@page "/todo" <PageTitle>Todo</PageTitle> <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> @code { private List<TodoItem> todos = new(); }- Bloktaki Todo öğeleri için bir alan ekleyin
Uygulama, listeye Todo öğeleri eklemek için Kullanıcı arabirimi öğeleri gerektirir. Sıralanmamış listenin () altına bir metin girişi (
<input>) ve bir düğme () ekleyin<button><ul>...</ul>:@page "/todo" <PageTitle>Todo</PageTitle> <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> <input placeholder="Something todo" /> <button>Add todo</button> @code { private List<TodoItem> todos = new(); }TodoItem.csDosyayı ve güncelleştirilmişPages/Todo.razordosyayı kaydedin. Komut kabuğunda, dosyalar kaydedildiğinde uygulama otomatik olarak yeniden oluşturulur. Tarayıcı sayfayı yeniden yükler.Add todoDüğme seçildiğinde, bir olay işleyicisi düğmeye eklenmediğinden hiçbir şey olmaz.Bileşene bir
AddTodoYöntem ekleyinTodove özniteliği kullanarak düğmenin metodunu kaydedin@onclick.AddTodoC# yöntemi, düğme seçildiğinde çağrılır:<input placeholder="Something todo" /> <button @onclick="AddTodo">Add todo</button> @code { private List<TodoItem> todos = new(); private void AddTodo() { // Todo: Add the todo } }Yeni Todo öğesinin başlığını almak için,
newTodobloğun üst kısmına bir dize alanı ekleyin@code:private string? newTodo;<input>Özniteliği ile bağlanacak metin öğesini değiştirinnewTodo@bind:<input placeholder="Something todo" @bind="newTodo" />AddTodoBelirtilen başlığa sahip öğesini listeye eklemek için yöntemini güncelleştirinTodoItem. Metin girişinin değerininewTodoboş bir dizeye ayarlayarak temizleyin:@page "/todo" <PageTitle>Todo</PageTitle> <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> <input placeholder="Something todo" @bind="newTodo" /> <button @onclick="AddTodo">Add todo</button> @code { private List<TodoItem> todos = new(); private string? newTodo; private void AddTodo() { if (!string.IsNullOrWhiteSpace(newTodo)) { todos.Add(new TodoItem { Title = newTodo }); newTodo = string.Empty; } } }Pages/Todo.razordosyasını kaydedin. Uygulama, komut kabuğu 'nda otomatik olarak yeniden oluşturulur ve sayfa tarayıcıya yeniden yüklenir.Her Todo öğesi için başlık metni düzenlenebilir hale getirilebilir ve bir CheckBox, kullanıcının tamamlanmış öğeleri izlemesine yardımcı olabilir. Her Todo öğesi için bir CheckBox girişi ekleyin ve değerini
IsDoneözelliğine bağlayın.@todo.Title<input>İle bağlantılı bir öğeye geçintodo.Title@bind:<ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul><h1>Üst bilgiyi, tamamlanmamış olan Todo öğelerinin sayısının (yani) sayısını gösterecek şekilde güncelleştirinIsDonefalse.<h1>Todo (@todos.Count(todo => !todo.IsDone))</h1>Tamamlanan
Todobileşen (Pages/Todo.razor):@page "/todo" <PageTitle>Todo</PageTitle> <h1>Todo (@todos.Count(todo => !todo.IsDone))</h1> <ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul> <input placeholder="Something todo" @bind="newTodo" /> <button @onclick="AddTodo">Add todo</button> @code { private List<TodoItem> todos = new(); private string? newTodo; private void AddTodo() { if (!string.IsNullOrWhiteSpace(newTodo)) { todos.Add(new TodoItem { Title = newTodo }); newTodo = string.Empty; } } }Pages/Todo.razordosyasını kaydedin. Uygulama, komut kabuğu 'nda otomatik olarak yeniden oluşturulur ve sayfa tarayıcıya yeniden yüklenir.Bileşeni test etmek için öğe ekleyin, öğeleri düzenleyin ve Todo öğelerini işaretleyin.
İşiniz bittiğinde, komut kabuğu 'nda uygulamayı kapatın. Birçok komut kabuklarını, + bir uygulamayı durdurmak için CTRLc klavye komutunu kabul eder.
Sonraki adımlar
Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:
- Yapılacaklar listesi Blazor uygulama projesi oluşturma
- RazorBileşenleri Değiştir
- Bileşenlerde olay işleme ve veri bağlamayı kullanma
- Bir uygulamada yönlendirmeyi kullanma Blazor
ASP.NET Core araçları hakkında bilgi edinin Blazor :
Bu öğreticide, bir uygulamayı nasıl oluşturabileceğiniz ve değiştireceğiniz gösterilmektedir Blazor . Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:
- Yapılacaklar listesi Blazor uygulama projesi oluşturma
- RazorBileşenleri Değiştir
- Bileşenlerde olay işleme ve veri bağlamayı kullanma
- Bir uygulamada yönlendirmeyi kullanma Blazor
Bu öğreticinin sonunda, çalışan bir yapılacaklar listesi uygulamanız olacak.
Önkoşullar
Uygulama oluşturma Blazor
BlazorKomut kabuğunda adlı yeni bir uygulama oluşturun TodoList :
dotnet new blazorserver -o TodoList
dotnet new blazorwasm -o TodoList
Yukarıdaki komut, TodoList uygulamayı tutma seçeneğiyle adlı bir klasör oluşturur -o|--output . TodoListKlasör, projenin kök klasörüdür . TodoListAşağıdaki komutla klasörleri klasöre değiştirin:
cd TodoList
Yapılacaklar listesi uygulaması oluşturma Blazor
TodoRazor Aşağıdaki komutu kullanarak uygulamaya yeni bir bileşen ekleyin:dotnet new razorcomponent -n Todo -o Pages-n|--nameYukarıdaki komutta seçeneği, yeni bileşenin adını belirtir Razor . Yeni bileşen,Pagesseçeneğiyle birlikte proje klasöründe oluşturulur-o|--output.Önemli
Razor bileşen dosyası adları, büyük harfle bir ilk harf gerektirir. Klasörünü açın
PagesveTodobileşen dosyası adının büyük harfle başlatıldığını onaylayınT. Dosya adı olmalıdırTodo.razor.TodoBileşeni herhangi bir dosya düzenleyicisinde açın ve@pageRazor göreli URL 'si ile dosyanın en üstüne bir yönerge ekleyin/todo.Pages/Todo.razor:@page "/todo" <h1>Todo</h1> @code { }Pages/Todo.razordosyasını kaydedin.TodoBileşeni gezinti çubuğuna ekleyin.NavMenuBileşen, uygulamanın düzeninde kullanılır. Düzenler, bir uygulamadaki içeriğin çoğaltılmasını önlemenize olanak sağlayan bileşenlerdir. Bileşen,NavLinkuygulama tarafından bileşen URL 'si yüklendiğinde uygulamanın kullanıcı arabiriminde bir ipucu sağlar.Bileşenin sırasız listesinde (
<ul>...</ul>)NavMenu, bileşen için aşağıdaki liste öğesini (<li>...</li>) veNavLinkbileşenini ekleyinTodo.Shared/NavMenu.razoriçinde:<ul class="nav flex-column"> ... <li class="nav-item px-3"> <NavLink class="nav-link" href="todo"> <span class="oi oi-list-rich" aria-hidden="true"></span> Todo </NavLink> </li> </ul>Shared/NavMenu.razordosyasını kaydedin.dotnet watch runKlasörden komut kabuğu 'ndaki komutu yürüterek uygulamayı derleyin ve çalıştırınTodoList. Uygulama çalıştırıldıktan sonra,Todouygulamanın gezinti çubuğundaki bağlantıyı seçerek yeni Todo sayfasını ziyaret edin/todo.Uygulamadan komut kabuğunu çalıştırın. Bir dosya her kaydedildiğinde, uygulama otomatik olarak yeniden oluşturulur ve Tarayıcıdaki sayfa otomatik olarak yeniden yüklenir.
TodoItem.csTodoListBir Todo öğesini temsil eden bir sınıfı tutmak için projenin (klasör) köküne bir dosya ekleyin. Sınıfı için aşağıdaki C# kodunu kullanınTodoItem.TodoItem.cs:public class TodoItem { public string Title { get; set; } public bool IsDone { get; set; } }Not
dosyayı ve sınıfı oluşturmak için Visual Studio kullanıyorsanız
TodoItem.csTodoItemaşağıdaki yaklaşımlardan birini kullanın:- sınıf için Visual Studio oluşturduğu ad alanını kaldırın.
- yukarıdaki kod bloğundaki kopyala düğmesini kullanın ve Visual Studio üreten dosyanın tüm içeriğini değiştirin.
TodoBileşene dönün ve aşağıdaki görevleri gerçekleştirin:- Bloktaki Todo öğeleri için bir alan ekleyin
@code.TodoBileşen, Todo listesinin durumunu korumak için bu alanı kullanır. foreachHer Todo öğesini bir liste öğesi () olarak işlemek için sıralanmamış liste işaretlemesi ve bir döngüsü ekleyin<li>.
Pages/Todo.razor:@page "/todo" <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> @code { private List<TodoItem> todos = new(); }- Bloktaki Todo öğeleri için bir alan ekleyin
Uygulama, listeye Todo öğeleri eklemek için Kullanıcı arabirimi öğeleri gerektirir. Sıralanmamış listenin () altına bir metin girişi (
<input>) ve bir düğme () ekleyin<button><ul>...</ul>:@page "/todo" <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> <input placeholder="Something todo" /> <button>Add todo</button> @code { private List<TodoItem> todos = new(); }TodoItem.csDosyayı ve güncelleştirilmişPages/Todo.razordosyayı kaydedin. Komut kabuğunda, dosyalar kaydedildiğinde uygulama otomatik olarak yeniden oluşturulur. Tarayıcı sayfayı yeniden yükler.Add todoDüğme seçildiğinde, bir olay işleyicisi düğmeye eklenmediğinden hiçbir şey olmaz.Bileşene bir
AddTodoYöntem ekleyinTodove özniteliği kullanarak düğmenin metodunu kaydedin@onclick.AddTodoC# yöntemi, düğme seçildiğinde çağrılır:<input placeholder="Something todo" /> <button @onclick="AddTodo">Add todo</button> @code { private List<TodoItem> todos = new(); private void AddTodo() { // Todo: Add the todo } }Yeni Todo öğesinin başlığını almak için,
newTodobloğun üst kısmına bir dize alanı ekleyin@code:private string newTodo;<input>Özniteliği ile bağlanacak metin öğesini değiştirinnewTodo@bind:<input placeholder="Something todo" @bind="newTodo" />AddTodoBelirtilen başlığa sahip öğesini listeye eklemek için yöntemini güncelleştirinTodoItem. Metin girişinin değerininewTodoboş bir dizeye ayarlayarak temizleyin:@page "/todo" <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> <input placeholder="Something todo" @bind="newTodo" /> <button @onclick="AddTodo">Add todo</button> @code { private List<TodoItem> todos = new(); private string newTodo; private void AddTodo() { if (!string.IsNullOrWhiteSpace(newTodo)) { todos.Add(new TodoItem { Title = newTodo }); newTodo = string.Empty; } } }Pages/Todo.razordosyasını kaydedin. Uygulama, komut kabuğu 'nda otomatik olarak yeniden oluşturulur ve sayfa tarayıcıya yeniden yüklenir.Her Todo öğesi için başlık metni düzenlenebilir hale getirilebilir ve bir CheckBox, kullanıcının tamamlanmış öğeleri izlemesine yardımcı olabilir. Her Todo öğesi için bir CheckBox girişi ekleyin ve değerini
IsDoneözelliğine bağlayın.@todo.Title<input>İle bağlantılı bir öğeye geçintodo.Title@bind:<ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul><h1>Üst bilgiyi, tamamlanmamış olan Todo öğelerinin sayısının (yani) sayısını gösterecek şekilde güncelleştirinIsDonefalse.<h1>Todo (@todos.Count(todo => !todo.IsDone))</h1>Tamamlanan
Todobileşen (Pages/Todo.razor):@page "/todo" <h1>Todo (@todos.Count(todo => !todo.IsDone))</h1> <ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul> <input placeholder="Something todo" @bind="newTodo" /> <button @onclick="AddTodo">Add todo</button> @code { private List<TodoItem> todos = new(); private string newTodo; private void AddTodo() { if (!string.IsNullOrWhiteSpace(newTodo)) { todos.Add(new TodoItem { Title = newTodo }); newTodo = string.Empty; } } }Pages/Todo.razordosyasını kaydedin. Uygulama, komut kabuğu 'nda otomatik olarak yeniden oluşturulur ve sayfa tarayıcıya yeniden yüklenir.Bileşeni test etmek için öğe ekleyin, öğeleri düzenleyin ve Todo öğelerini işaretleyin.
İşiniz bittiğinde, komut kabuğu 'nda uygulamayı kapatın. Birçok komut kabuklarını, + bir uygulamayı durdurmak için CTRLc klavye komutunu kabul eder.
Sonraki adımlar
Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:
- Yapılacaklar listesi Blazor uygulama projesi oluşturma
- RazorBileşenleri Değiştir
- Bileşenlerde olay işleme ve veri bağlamayı kullanma
- Bir uygulamada yönlendirmeyi kullanma Blazor
ASP.NET Core araçları hakkında bilgi edinin Blazor :
Bu öğreticide, bir uygulamayı nasıl oluşturabileceğiniz ve değiştireceğiniz gösterilmektedir Blazor . Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:
- Yapılacaklar listesi Blazor uygulama projesi oluşturma
- RazorBileşenleri Değiştir
- Bileşenlerde olay işleme ve veri bağlamayı kullanma
- Bir uygulamada yönlendirmeyi kullanma Blazor
Bu öğreticinin sonunda, çalışan bir yapılacaklar listesi uygulamanız olacak.
Önkoşullar
Uygulama oluşturma Blazor
BlazorKomut kabuğunda adlı yeni bir uygulama oluşturun TodoList :
dotnet new blazorserver -o TodoList
dotnet new blazorwasm -o TodoList
Yukarıdaki komut, TodoList uygulamayı tutma seçeneğiyle adlı bir klasör oluşturur -o|--output . TodoListKlasör, projenin kök klasörüdür . TodoListAşağıdaki komutla klasörleri klasöre değiştirin:
cd TodoList
Yapılacaklar listesi uygulaması oluşturma Blazor
TodoRazor Aşağıdaki komutu kullanarak uygulamaya yeni bir bileşen ekleyin:dotnet new razorcomponent -n Todo -o Pages-n|--nameYukarıdaki komutta seçeneği, yeni bileşenin adını belirtir Razor . Yeni bileşen,Pagesseçeneğiyle birlikte proje klasöründe oluşturulur-o|--output.Önemli
Razor bileşen dosyası adları, büyük harfle bir ilk harf gerektirir. Klasörünü açın
PagesveTodobileşen dosyası adının büyük harfle başlatıldığını onaylayınT. Dosya adı olmalıdırTodo.razor.TodoBileşeni herhangi bir dosya düzenleyicisinde açın ve@pageRazor göreli URL 'si ile dosyanın en üstüne bir yönerge ekleyin/todo.Pages/Todo.razor:@page "/todo" <h1>Todo</h1> @code { }Pages/Todo.razordosyasını kaydedin.TodoBileşeni gezinti çubuğuna ekleyin.NavMenuBileşen, uygulamanın düzeninde kullanılır. Düzenler, bir uygulamadaki içeriğin çoğaltılmasını önlemenize olanak sağlayan bileşenlerdir. Bileşen,NavLinkuygulama tarafından bileşen URL 'si yüklendiğinde uygulamanın kullanıcı arabiriminde bir ipucu sağlar.Bileşenin sırasız listesinde (
<ul>...</ul>)NavMenu, bileşen için aşağıdaki liste öğesini (<li>...</li>) veNavLinkbileşenini ekleyinTodo.Shared/NavMenu.razoriçinde:<ul class="nav flex-column"> ... <li class="nav-item px-3"> <NavLink class="nav-link" href="todo"> <span class="oi oi-list-rich" aria-hidden="true"></span> Todo </NavLink> </li> </ul>Shared/NavMenu.razordosyasını kaydedin.dotnet watch runKlasörden komut kabuğu 'ndaki komutu yürüterek uygulamayı derleyin ve çalıştırınTodoList. Uygulama çalıştırıldıktan sonra,Todouygulamanın gezinti çubuğundaki bağlantıyı seçerek yeni Todo sayfasını ziyaret edin/todo.Uygulamadan komut kabuğunu çalıştırın. Bir dosya her kaydedildiğinde, uygulama otomatik olarak yeniden oluşturulur ve Tarayıcıdaki sayfa otomatik olarak yeniden yüklenir.
TodoItem.csTodoListBir Todo öğesini temsil eden bir sınıfı tutmak için projenin (klasör) köküne bir dosya ekleyin. Sınıfı için aşağıdaki C# kodunu kullanınTodoItem.TodoItem.cs:public class TodoItem { public string Title { get; set; } public bool IsDone { get; set; } }Not
dosyayı ve sınıfı oluşturmak için Visual Studio kullanıyorsanız
TodoItem.csTodoItemaşağıdaki yaklaşımlardan birini kullanın:- sınıf için Visual Studio oluşturduğu ad alanını kaldırın.
- yukarıdaki kod bloğundaki kopyala düğmesini kullanın ve Visual Studio üreten dosyanın tüm içeriğini değiştirin.
TodoBileşene dönün ve aşağıdaki görevleri gerçekleştirin:- Bloktaki Todo öğeleri için bir alan ekleyin
@code.TodoBileşen, Todo listesinin durumunu korumak için bu alanı kullanır. foreachHer Todo öğesini bir liste öğesi () olarak işlemek için sıralanmamış liste işaretlemesi ve bir döngüsü ekleyin<li>.
Pages/Todo.razor:@page "/todo" <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> @code { private IList<TodoItem> todos = new List<TodoItem>(); }- Bloktaki Todo öğeleri için bir alan ekleyin
Uygulama, listeye Todo öğeleri eklemek için Kullanıcı arabirimi öğeleri gerektirir. Sıralanmamış listenin () altına bir metin girişi (
<input>) ve bir düğme () ekleyin<button><ul>...</ul>:@page "/todo" <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> <input placeholder="Something todo" /> <button>Add todo</button> @code { private IList<TodoItem> todos = new List<TodoItem>(); }TodoItem.csDosyayı ve güncelleştirilmişPages/Todo.razordosyayı kaydedin. Komut kabuğunda, dosyalar kaydedildiğinde uygulama otomatik olarak yeniden oluşturulur. Tarayıcı sayfayı yeniden yükler.Add todoDüğme seçildiğinde, bir olay işleyicisi düğmeye eklenmediğinden hiçbir şey olmaz.Bileşene bir
AddTodoYöntem ekleyinTodove özniteliği kullanarak düğmenin metodunu kaydedin@onclick.AddTodoC# yöntemi, düğme seçildiğinde çağrılır:<input placeholder="Something todo" /> <button @onclick="AddTodo">Add todo</button> @code { private IList<TodoItem> todos = new List<TodoItem>(); private void AddTodo() { // Todo: Add the todo } }Yeni Todo öğesinin başlığını almak için,
newTodobloğun üst kısmına bir dize alanı ekleyin@code:private string newTodo;text öğesini
<input>özniteliğiyle bağlamaknewTodoiçin@binddeğiştirme:<input placeholder="Something todo" @bind="newTodo" />Belirtilen
AddTodobaşlığı listeye eklemekTodoItemiçin yöntemini güncelleştirin. Boş bir dizeye ayarerek metinnewTodogirişinin değerini temizleme:@page "/todo" <h1>Todo</h1> <ul> @foreach (var todo in todos) { <li>@todo.Title</li> } </ul> <input placeholder="Something todo" @bind="newTodo" /> <button @onclick="AddTodo">Add todo</button> @code { private IList<TodoItem> todos = new List<TodoItem>(); private string newTodo; private void AddTodo() { if (!string.IsNullOrWhiteSpace(newTodo)) { todos.Add(new TodoItem { Title = newTodo }); newTodo = string.Empty; } } }Pages/Todo.razordosyasını kaydedin. Uygulama komut kabuğunda otomatik olarak yeniden oluşturulur ve sayfa tarayıcıda yeniden yüklenir.Her todo öğesinin başlık metni düzenlenebilir hale edilebilir ve onay kutusu kullanıcının tamamlanmış öğeleri izlemesine yardımcı olabilir. Her todo öğesi için bir onay kutusu girişi ekleyin ve değerini özelliğine
IsDonebağlayın. ile@todo.Titleöğesine bağlı bir<input>öğeyetodo.Title@binddeğiştirme:<ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul>Üst
<h1>bilgisini, tamamlanmadı olan todo öğelerinin sayısını gösterecek şekilde güncelleştirin (IsDonefalseolur).<h1>Todo (@todos.Count(todo => !todo.IsDone))</h1>Tamamlanmış bileşen
Todo(Pages/Todo.razor):@page "/todo" <h1>Todo (@todos.Count(todo => !todo.IsDone))</h1> <ul> @foreach (var todo in todos) { <li> <input type="checkbox" @bind="todo.IsDone" /> <input @bind="todo.Title" /> </li> } </ul> <input placeholder="Something todo" @bind="newTodo" /> <button @onclick="AddTodo">Add todo</button> @code { private IList<TodoItem> todos = new List<TodoItem>(); private string newTodo; private void AddTodo() { if (!string.IsNullOrWhiteSpace(newTodo)) { todos.Add(new TodoItem { Title = newTodo }); newTodo = string.Empty; } } }Pages/Todo.razordosyasını kaydedin. Uygulama komut kabuğunda otomatik olarak yeniden oluşturulur ve sayfa tarayıcıda yeniden yüklenir.Bileşeni test etmek için öğeler ekleyin, öğeleri düzenleyin ve yapılacaklar öğelerini işaretleme.
Tamamlandığında, komut kabuğunda uygulamayı kapatın. Birçok komut kabuğu, bir uygulamayı durdurmak için Ctrl + c klavye komutunu kabul eder.
Sonraki adımlar
Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:
- Todo listesi uygulama Blazor projesi oluşturma
- Bileşenleri Razor değiştirme
- Bileşenlerde olay işleme ve veri bağlamayı kullanma
- Uygulamada Blazor yönlendirmeyi kullanma
ASP.NET Core için Blazor ASP.NET Core: