Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
ASP.NET Core 2 Fundamentals
ASP.NET Core 2 Fundamentals

ASP.NET Core 2 Fundamentals: Build cross-platform apps and dynamic web services with this server-side web application framework

Arrow left icon
Profile Icon Gumus Profile Icon T. S. Ragupathi
Arrow right icon
$20.98 $29.99
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2 (1 Ratings)
eBook Aug 2018 298 pages 1st Edition
eBook
$20.98 $29.99
Paperback
$38.99
Subscription
Free Trial
Renews at $19.99p/m
Arrow left icon
Profile Icon Gumus Profile Icon T. S. Ragupathi
Arrow right icon
$20.98 $29.99
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2 (1 Ratings)
eBook Aug 2018 298 pages 1st Edition
eBook
$20.98 $29.99
Paperback
$38.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
$20.98 $29.99
Paperback
$38.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Table of content icon View table of contents Preview book icon Preview Book

ASP.NET Core 2 Fundamentals

Controllers

In the previous chapter, we discussed that all web applications receive requests from the server and produce a response that is delivered back to the end user. This chapter covers the role of controllers in ASP.NET MVC applications and details the procedure of creating a controller and action methods. 

By the end of this chapter, you will be able to:

  • Explain the role of the controller in ASP.NET MVC applications
  • Work with the routing engine
  • Install the ASP.NET Core NuGet packages in your application
  • Create your first controller and action methods
  • Add a view and make the changes that allow your controller to use that view
  • Add a model and pass that model data to your view

Role of the Controller in ASP.NET MVC Applications

A controller does the job of receiving the request and producing the output based on the input data in ASP.NET MVC. You can imagine controllers as the entrance point to your business flow that organizes the application flow.

If you are intending to write a complex application, it is best to avoid business logic in your controllers. Instead, your controllers should call your business logic. In this way, you can keep the core part of your business technology-agnostic.

At the high level, the controller orchestrates between the model and the view, and sends the output back to the user. This is also the place where authentication is usually done through action filters. Action filters are basically interceptors and will be discussed in detail in the Filters section of this chapter. The following diagram illustrates the high-level flow...

Introduction to Routing

The routing engine is responsible for getting the incoming request and routing that request to the appropriate controller based on the URL pattern. We can configure the routing engine so that it can choose the appropriate controller based on the relevant information. In other words, routing is a programmatic mapping that states which method of which controller is to be invoked based on some URL pattern.

By convention, ASP.NET MVC follows this pattern: Controller/Action/Id.

If the user types the URL http://yourwebsite.com/Hello/Greeting/1, the routing engine selects the Hello controller class and Greeting action method within the Hello controller, and passes the Id value as 1. XXXController is a naming convention and it is assumed your controllers are always ending with a controller suffix. You can give default values to some of the parameters and make some...

Installing the ASP.NET Core NuGet Package in Your Application

We'll straight away jump to installing the ASP.NET Core NuGet package in your application.

Follow these steps to install the NuGet package of ASP.NET MVC:

  1. Right-click on the dependencies, and select the Manage NuGet Packages option:

  1. We will see that a package called Microsoft.ASPNetCore.All is installed (as shown in the following screenshot). This package is actually a meta package that installs most of the dependencies we need.

  1. If we extend this package from dependencies, we will see:

So, everything we need is already installed regardless of using an empty project or not.

ASP.NET Core is installed in our application. Now, we need to tell our application to use ASP.NET MVC.

This needs a couple of changes to the Startup.cs file:

  1. Configure the application to add the MVC service. This can be done by adding...

Our First Controller

Before creating the controller, we need to remove the following app.Run statement as this will return Hello World! for all the incoming requests. As we want incoming requests to be handled by the controllers, we need to remove the following code from the Configure method of the Startup class:

app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
};

We have installed ASP.NET Core in our application. So, we are geared up for creating our first ASP.NET Core controller. Create a folder with the name Controllers and add a new controller from the context menu, as shown in the following screenshot:

Context basically represents the request-response pair along with other metadata necessary to process the request. 

For people who used OWIN to develop your own web custom framework without using MVC, it is analogous...

Adding Views

So far, we were returning a simple string from the controller. Although that explains the concept of how the Controller and action methods works, it is not of much practical use.

Let's create a new action method named, Index2:


Go to https://goo.gl/UhaHyz to access the code.
public IActionResult Index2()
{
return View(); // View for this 'Index2' action method
}

Now, we have created the action method that returns a view, but we have still not added the view. By convention, ASP.NET MVC would try to search for our view in the Views\{ControllerName}\{ActionMethod.cshtml} folder. With respect to the preceding example, it will try to search for Views\Home\Index2.cshtml. Please note that the name of the controller folder is Home, not HomeController. The prefix is only needed as per convention. As this folder structure and file are not available, you&apos...

Adding Models

Models represent your business domain classes. Now, we are going to learn about how to use the Models in our controller. Create a Models folder and add a simple Employee class. This is a just a plain old C# class:


Go to https://goo.gl/uBtpw3 to access the code.
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public string Designation { get; set; }
}

Create a new action method, Employee, in our HomeController, and create an object of the Employee Model with some values, and pass the Model to the View. Our idea is to use the Model employee values in the View to present them to the user:


Go to https://goo.gl/r4Jc9x to access the code.
public IActionResult Employee()
{
//Sample Model - Usually this comes from database
Employee emp1 = new Employee
{
EmployeeId = 1,
Name = "Jon Skeet",
Designation = ...

Role of the Controller in ASP.NET MVC Applications


A controller does the job of receiving the request and producing the output based on the input data in ASP.NET MVC. You can imagine controllers as the entrance point to your business flow that organizes the application flow.

Note

If you are intending to write a complex application, it is best to avoid business logic in your controllers. Instead, your controllers should call your business logic. In this way, you can keep the core part of your business technology-agnostic.

At the high level, the controller orchestrates between the model and the view, and sends the output back to the user. This is also the place where authentication is usually done through action filters. Action filters are basically interceptors and will be discussed in detail in the Filters section of this chapter. The following diagram illustrates the high-level flow of a request (with the steps) in ASP.NET MVC and shows us how the controller fits into the big picture:

The following...

Introduction to Routing


The routing engine is responsible for getting the incoming request and routing that request to the appropriate controller based on the URL pattern. We can configure the routing engine so that it can choose the appropriate controller based on the relevant information. In other words, routing is a programmatic mapping that states which method of which controller is to be invoked based on some URL pattern.

By convention, ASP.NET MVC follows this pattern: Controller/Action/Id.

If the user types the URL http://yourwebsite.com/Hello/Greeting/1, the routing engine selects the Hello controller class and Greeting action method within the Hello controller, and passes the Id value as 1. XXXController is a naming convention and it is assumed your controllers are always ending with a controller suffix. You can give default values to some of the parameters and make some of the parameters optional.

The following is the sample configuration:

The template: "{controller=Hello}/{action...

Installing the ASP.NET Core NuGet Package in Your Application


We'll straight away jump to installing the ASP.NET Core NuGet package in your application.

Follow these steps to install the NuGet package of ASP.NET MVC:

  1. Right-click on the dependencies, and select the Manage NuGet Packages option:
  1. We will see that a package called Microsoft.ASPNetCore.All is installed (as shown in the following screenshot). This package is actually a meta package that installs most of the dependencies we need.
  1. If we extend this package from dependencies, we will see:

So, everything we need is already installed regardless of using an empty project or not.

ASP.NET Core is installed in our application. Now, we need to tell our application to use ASP.NET MVC.

This needs a couple of changes to the Startup.cs file:

  1. Configure the application to add the MVC service. This can be done by adding the following line to the ConfigureServices method of the Startup class:

Note

Go to https://goo.gl/RPXUaw to access the code.

public void...
Left arrow icon Right arrow icon

Key benefits

  • Adopts the application-centric approach to explain core concepts
  • Covers industry-best practices to build flexible, robust applications
  • Shows how to enhance your applications by adding more functionalities

Description

The book sets the stage with an introduction to web applications and helps you build an understanding of the tried-and-true MVC architecture. You learn all about views, from what is the Razor view engine to tagging helpers. You gain insight into what models are, how to bind them, and how to migrate database using the correct model. As you get comfortable with the world of ASP.NET, you learn about validation and routing. You also learn the advanced concepts, such as designing Rest Buy (a RESTful shopping cart application), creating entities for it, and creating EF context and migrations. By the time you are done reading the book, you will be able to optimally use ASP.NET to develop, unit test, and deploy applications like a pro.

Who is this book for?

If you are looking to build web applications using ASP.NET Core or you want to become a pro in building web applications using the Microsoft technology, this is the ideal book for you. Prior exposure and understanding of C#, JavaScript, HTML, and CSS syntax is assumed.

What you will learn

  • Work with basic programming constructs using the Razor view engine
  • Use flexibility and data compartmentalization of ViewModel
  • Build a custom route for ASP.NET MVC applications for SEO
  • Optimize applications with performance analysis and improvement steps
  • Improve application performance, security, and data access to optimize the overall development process
  • Deploy an ASP.NET MVC application in a non-Windows environment

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 30, 2018
Length: 298 pages
Edition : 1st
Language : English
ISBN-13 : 9781789533552
Vendor :
Microsoft
Languages :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want

Product Details

Publication date : Aug 30, 2018
Length: 298 pages
Edition : 1st
Language : English
ISBN-13 : 9781789533552
Vendor :
Microsoft
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 136.97
Hands-On Full-Stack Web Development with ASP.NET Core
$48.99
ASP.NET Core 2 Fundamentals
$38.99
ASP.NET Core 2 and Vue.js
$48.99
Total $ 136.97 Stars icon

Table of Contents

9 Chapters
Setting the Stage Chevron down icon Chevron up icon
Controllers Chevron down icon Chevron up icon
Views Chevron down icon Chevron up icon
Models Chevron down icon Chevron up icon
Validation Chevron down icon Chevron up icon
Routing Chevron down icon Chevron up icon
Rest Buy Chevron down icon Chevron up icon
Adding Features, Testing, and Deployment Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
(1 Ratings)
5 star 0%
4 star 0%
3 star 0%
2 star 100%
1 star 0%
Ewan Dalton Jan 30, 2021
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
Very basic fundamentals are there, good thing I knew nothing about ASP.NET Core otherwise I wouldn't have benefited much from this.So much repetition over the basics it will make your head spin. Riddled with mistakes in both spelling and the set "activities". Completely omits any useful code sections rendering the book almost entirely useless on it's own. Important information placed in small snippets that are easily glossed over without emphasis.Disdain for the authors only grew as I progressed through this muddle.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.