0% found this document useful (0 votes)
130 views

Florin Olariu: "Alexandru Ioan Cuza", University of Iași Department of Computer Science

The document provides an introduction and agenda for ASP.NET Core MVC. It begins with a short recap of MVC patterns including models representing application state and business logic, views for presenting user interfaces, and controllers for handling user interaction. The rest of the agenda covers key MVC concepts like routing, model binding, validation, dependency injection, filters, and the Razor view engine. It concludes with bringing the concepts together in a demo application and taking questions.

Uploaded by

Gigi Florica
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
130 views

Florin Olariu: "Alexandru Ioan Cuza", University of Iași Department of Computer Science

The document provides an introduction and agenda for ASP.NET Core MVC. It begins with a short recap of MVC patterns including models representing application state and business logic, views for presenting user interfaces, and controllers for handling user interaction. The rest of the agenda covers key MVC concepts like routing, model binding, validation, dependency injection, filters, and the Razor view engine. It concludes with bringing the concepts together in a demo application and taking questions.

Uploaded by

Gigi Florica
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 45

Introduction to .

NET
Florin Olariu
“Alexandru Ioan Cuza”, University of Iași
Department of Computer Science
ASP.NET Core MVC
Agenda

 Short recap about MVC


 Understanding MVC
 Routing
 Model binding
 Model validation
 Dependency injection
 Filters
 Razor View Engine
 Bringing all together
 Summary
Short recap about MVC
Short recap about MVC
Short recap about MVC

 Models and their responsibilities


Short recap about MVC

 Models and their responsibilities


 The Model in an MVC application represents the state of the application
Short recap about MVC

 Models and their responsibilities


 The Model in an MVC application represents the state of the application
 Business logic or operations that should be performed by models
Short recap about MVC

 Models and their responsibilities


 The Model in an MVC application represents the state of the application
 Business logic or operations that should be performed by models
 Strongly-typed views will typically use ViewModel types specifically designed to
contain the data to display on that view
Short recap about MVC

 Views and their responsibilities


Short recap about MVC

 Views and their responsibilities


 Used for presenting content through the user interface
Short recap about MVC

 Views and their responsibilities


 Used for presenting content through the user interface
 They use the Razor view engine to embed .NET code in HTML markup.
Short recap about MVC

 Views and their responsibilities


 Used for presenting content through the user interface.
 They use the Razor view engine to embed .NET code in HTML markup.
 If we need to deal with logic and display complex data we should consider using
ViewComponent, ViewModel or View template
Short recap about MVC

 Controllers and their responsibilities


Short recap about MVC

 Controllers and their responsibilities


 Handles user interaction, work with model and than select a view that will be
rendered
Routing
Routing

routes.MapRoute(name: "Default",
template: "{controller=Home}/
{action=Index}/{id?}");
Routing

 Attribute routing
Routing

 Attribute routing
Model binding
Model binding

 @model MyModelName
Model binding

 @model MyModelName

<form asp-controller="Product" asp-action="Edit" method ="post" >


<label asp-for="Name"></label >
<input asp-for="Name"/>
<label asp-for="Description"></label >
<input asp-for="Description"/>
<input type="submit" value="Submit" />
</form>
Model binding

 @model MyModelName

[HttpPost]
public IActionResult MyAction(MyModelName model)
{
return View(model);
}
Model validation
Model validation

using System.ComponentModel.DataAnnotations;
public class MyModelViewModel
{
[Required]
public string Name { get; set; }

[Required]
public string Description { get; set; }
}
Model validation

public IActionResult MyAction(MyModelViewModel model)


{
if (ModelState.IsValid)
{
// work with the model
}
// If we got this far, something failed, redisplay form
return View(model);
}
Dependency Injection
Dependency Injection

@inject SomeService ServiceName


<!DOCTYPE html>
<html>
<head>
<title>@ServiceName.GetTitle</title>
</head>
<body>
<h1>@ServiceName.GetTitle</h1>
</body>
</html>
Filters
Filters
Filters

using FiltersSample.Helper;
using Microsoft.AspNetCore.Mvc.Filters;
namespace FiltersSample.Filters {
public class SampleActionFilter : IActionFilter {
public void OnActionExecuting(ActionExecutingContext context) {
// do something before the action executes
}
public void OnActionExecuted(ActionExecutedContext context) {
// do something after the action executes
}
}
}
Filters

[Authorize]
public class AccountController : Controller
{
}
Razor View Engine
Razor View Engine

 What is Razor?
Razor View Engine

 What is Razor?
 Rendering HTML
Razor View Engine

 What is Razor?
 Rendering HTML
 <p>Hello World</p>
Razor View Engine

 What is Razor?
 Rendering HTML
 Razor syntax
 <p>@DateTime.Now</p>
Razor View Engine

 What is Razor?
 Rendering HTML
 Razor syntax
 <p>@DateTime.Now</p>
 @{
var joe = new Person("Joe", 33);
}
<p>Age@(joe.Age)</p>
 @for (var i = 0; i < people.Length; i++)
{
var person = people[i];
@:Name: @person.Name
}
Bringing all together

 DEMO ~ 40 minutes
 Building an MVC Core application from scratch
 Scaffolding, validation, and model binding
 We will create a movie with the entire flow and explanations
One more thing…(1/2)
One more thing…(2/2)

Postel’s Law:
“Be conservative in what you do,
be liberal in what you accept
from others.”
Summary

 Models
 Views
 Controllers
 Razor
 Filters
 Validations
Bibliography

 https://docs.asp.net/en/latest/tutorials/first-web-api.html - By Mike Wasson


 and Rick Anderson
 Nagel, Christian. Professional C# 6 and .NET Core 1.0
 Chowdhuri, Shahed. ASP.NET Core Essentials
 https://docs.microsoft.com/en-us/aspnet/core/mvc/overview
 http://deviq.com/kinds-of-models/
Questions

 Do you have any other questions?


Thanks!
See you next time! 

You might also like