MVC - Finish the Controller

The last step is to finish the controller code. The controller now has a list of to-do items from the service layer, and it needs to put those items into a TodoViewModel and bind that model to the view you created earlier:

Controllers/TodoController.cs

public async Task<IActionResult> Index()
{
    var items = await _todoItemService.GetIncompleteItemsAsync();

    var model = new TodoViewModel()
    {
        Items = items
    };

    return View(model);
}

If you haven’t already, make sure these using statements are at the top of the file:

using AspNetCoreTodo.Services;
using AspNetCoreTodo.Models;

If you’re using Visual Studio or Visual Studio Code, the editor will suggest these using statements when you put your cursor on a red squiggly line.

Test it out

To start the application, press F5 (if you’re using Visual Studio or Visual Studio Code), or just type dotnet run in the terminal. If the code compiles without errors, the server will start up on port 5000 by default.

If your web browser didn’t open automatically, open it and navigate to http://localhost:5000/todo. You’ll see the view you created, with the data pulled from your fake database (for now).

Although it’s possible to go directly to http://localhost:5000/todo, it would be nicer to add an item called My to-dos to the navbar. To do this, you can edit the shared layout file.


Licenses and Attributions


Speak Your Mind