ASp.net Mvc 5

A
www.softserve.ua
ASP.NET MVC 5. Part 1
Overview. Controllers. Views.
2014-11-25 by O. Shvets
Reviewed by O. Konovalenko
2www.softserve.ua
Agenda
● ASP.NET Architecture
● ASP.NET MVC 3, 4, 5
● Controllers
● Views
3www.softserve.ua
MVC Pattern
● Controller – application logic.
Communicate with user. It
receives and handles user
queries, interrupts with Model,
and returns results by View
objects
● Model – contains classes that
represent data, performs
operations with data-bases and
organizes relations between data-
classes.
● View – performs UI
representation. Works with
model.
4www.softserve.ua
ASP.NET Architecture
5www.softserve.ua
Lifecycle of an ASP.NET MVC 5
Application
6www.softserve.ua
Benefits of ASP.NET MVC
● Higher quality requirements
o Test Driven Development
● Cross platforms support
o Windows, PDA, IPhone, …
● HTML code control
● Clear ULR navigation
o http://musica.ua/groups/metallica
● Maintainable code and command work
7www.softserve.ua
What’s new in ASP.NET MVC 3
● Extensible Scaffolding with MvcScaffold integration
● HTML 5 enabled project templates
● The Razor View Engine
● Support for Multiple View Engines
● Controller Improvements
● JavaScript and Ajax
● Model Validation Improvements
● Dependency Injection Improvements
8www.softserve.ua
What’s new in ASP.NET MVC 4
● ASP.NET Web API
● Enhancements to Default Project Templates
● Mobile Project Template and Empty Project Template
● jQuery Mobile, the View Switcher, and Browser Overriding
● Task Support for Asynchronous Controllers
● Azure SDK
● Database Migrations
● Add Controller to any project folder
● Bundling and Minification
● Enabling Logins from Facebook and Other Sites Using
OAuth and OpenID
9www.softserve.ua
What’s new in ASP.NET MVC 5
● One ASP.NET project template
● ASP.NET Identity
● Bootstrap
● Authentication filters
● Filter overrides
● Attribute routing
10www.softserve.ua
What’s new in ASP.NET MVC 5.1 & 5.2
● New Features in ASP.NET MVC 5.1
o Attribute routing improvements
o Bootstrap support for editor templates
o Enum support in views
o Unobtrusive validation for MinLength/MaxLength Attributes
o Supporting the ‘this’ context in Unobtrusive Ajax
● New Features in ASP.NET MVC 5.2
o Attribute routing improvements
11www.softserve.ua
Create ASP.NET MVC 5 Application
12www.softserve.ua
Adding a Controller
13www.softserve.ua
Our New HelloWorldController
14www.softserve.ua
The App_Start/RouteConfig.cs File
15www.softserve.ua
Welcome Method with Parameters
16www.softserve.ua
Matching the Route Parameter
17www.softserve.ua
Passing Parameters As Route Data
● In ASP.NET MVC applications, it's more typical to pass in
parameters as route data than passing them as query
strings
18www.softserve.ua
URL Route Mapping Features
● You can include "-", ".", ";" or any other characters you want
as part of your route rules
o This would pass appropriate "language", "locale", and "category"
parameters to a ProductsController:
{language}-{locale}/products/browse/{category}
/en-us/products/browse/food
language=en, locale=us, category=food
o You can use the "." file extension type at the end of a URL to
determine whether to render back the result in either a XML or
HTML format
products/browse/{category}.{format}
/products/browse/food.xml category=food, format=xml
/products/browse/food.html category=food, format=html
19www.softserve.ua
Adding a View
20www.softserve.ua
The View
21www.softserve.ua
Layout Page
22www.softserve.ua
Layout Page
● The layout has access to the same properties the Razor
view has, including:
o AjaxHelper (through the Ajax property)
o HtmlHelper (through the Html property)
o ViewData and model
o UrlHelper (through the Url property)
o TempData and ViewContext
● To specify a layout inside a view, we can specify the layout
to use with the Layout property:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
23www.softserve.ua
Razor View Engine
● an alternative to the Web Forms view engine
● is responsible for rendering views in the Razor format
(either .cshtml files or .vbhtml files)
o The Web Form view engine is used to support the older-format
Web Form views (.aspx and .ascx files)
Web Forms view engine example:
<%@ Page Language="C#"
Inherits="System.Web.Mvc.ViewPage<Product[]>" %>
<ul>
<% foreach(var product in Model) { %>
<li><%: product.Name %></li>
<% } %>
</ul>
Razor view engine example
@model Product[]
<ul>
@foreach(var product in Model) {
<li>@product.Name</li>
}
</ul>
24www.softserve.ua
The Fundamentals of the Razor Syntax
● ‘@’ is the magic character that precedes code instructions
in the following contexts
o ‘@’ For a single code line/values
o ‘@{ … }’ For code blocks with multiple lines
o ‘@:’ For single plain text to be rendered in the page
<p>
Current time is: @DateTime.Now
</p>
@{
var name = “John”;
var nameMessage = "Hello, my name is " + name + " Smith";
}
@{
@:The day is: @DateTime.Now.DayOfWeek. It is a <b>great</b> day!
}
25www.softserve.ua
The Fundamentals of the Razor Syntax
● HTML markup lines can be included at any part of the
code:
● Razor uses code syntax to infer indent:
@if(IsPost){
<p>Hello, the time is @DateTime.Now and this
page is a postback!</p>
} else {
<p>Hello, today is: </p> @DateTime.Now
}
// This won’t work in Razor. Content has to be
// wrapped between { }
if( i < 1 ) int myVar=0;
26www.softserve.ua
Passing Data to the View
● There are three different ways to pass data to a view:
o by using the ViewDataDictionary,
o by using the ViewBag,
o by using strongly typed views.
27www.softserve.ua
ViewDataDictionary
● It isn’t recommended to use ViewDataDictionary
o You have to perform type casts whenever you want to retrieve
something from the dictionary.
28www.softserve.ua
ViewBag
● It isn’t recommended to use ViewBag
● The ViewBag provides a way to pass data from the
controller to the view
o It makes use of the dynamic language features of C# 4
● Set properties on the dynamic ViewBag property within
your controller:
● A ViewBag property is also available in the view:
29www.softserve.ua
Strongly Typed Views
● Views can inherit from two types by default:
o System.Web.Mvc.WebViewPage or
o System.Web.Mvc.WebViewPage<T>
● Class WebViewPage<T> provides a strongly typed wrapper
over ViewData.Model through the Model property and
provides access to strongly typed versions of the
associated view helper objects - AjaxHelper and
HtmlHelper
30www.softserve.ua
Adding a Model
31www.softserve.ua
Passing Model to the View
● By specifying the model type using the @model keyword,
view will inherit from WebViewPage<T> instead of
WebViewPage, and we will have a strongly typed view
public ActionResult Index()
{
//…
SomeModel model = new SomeModel();
return View(model);
}
<dl>
<dt>Name:</dt>
<dd>@Model.Name</dd>
<dt>Date Added:</dt>
<dd>@Model.DateAdded</dd>
<dt>Message:</dt>
<dd>@Model.Message</dd>
</dl>
32www.softserve.ua
● Partials are intended to render snippets of content
● If you find yourself copying and pasting one snippet of
HTML from one view to the next, that snippet is a great
candidate for a partial
● To render a partial we can use the RenderPartial method or
the Partial method in a parent view
33www.softserve.ua
Partial Views
● The partial name is used to locate the partial markup in the
locations:
o <Area><Controller><PartialName>.cshtml
o <Area>Shared<PartialName>.cshtml
o <Controller><PartialName>.cshtml
o Shared<PartialName>.cshtml
● In order to prevent accidentally using a partial view from an
action, we prefix the view name with an underscore
● Html.RenderPartial(...) renders the partial immediately to
the response stream
● Html.Partial(...) returns a string
o In Razor, Html.RenderPartial must be in a code block
34www.softserve.ua
?
Questions ?
1 von 34

Recomendados

MVC ppt presentation von
MVC ppt presentationMVC ppt presentation
MVC ppt presentationBhavin Shah
14K views36 Folien
ASP .net MVC von
ASP .net MVCASP .net MVC
ASP .net MVCDivya Sharma
5.4K views26 Folien
ASP.NET MVC 3 von
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3Buu Nguyen
6.2K views48 Folien
Asp.net mvc presentation by Nitin Sawant von
Asp.net mvc presentation by Nitin SawantAsp.net mvc presentation by Nitin Sawant
Asp.net mvc presentation by Nitin SawantNitin Sawant
2.3K views27 Folien
Asp.net MVC training session von
Asp.net MVC training sessionAsp.net MVC training session
Asp.net MVC training sessionHrichi Mohamed
6.3K views44 Folien
Asp.net mvc basic introduction von
Asp.net mvc basic introductionAsp.net mvc basic introduction
Asp.net mvc basic introductionBhagath Gopinath
300 views10 Folien

Más contenido relacionado

Was ist angesagt?

MVC From Beginner to Advance in Indian Style by - Indiandotnet von
MVC From Beginner to Advance in Indian Style by - IndiandotnetMVC From Beginner to Advance in Indian Style by - Indiandotnet
MVC From Beginner to Advance in Indian Style by - IndiandotnetIndiandotnet
575 views22 Folien
Mvc architecture von
Mvc architectureMvc architecture
Mvc architectureSurbhi Panhalkar
44.5K views28 Folien
Asp.net mvc von
Asp.net mvcAsp.net mvc
Asp.net mvcEr. Kamal Bhusal
1.6K views101 Folien
Mvc von
MvcMvc
Mvcabhigad
581 views14 Folien
Asp.net mvc von
Asp.net mvcAsp.net mvc
Asp.net mvcPhuc Le Cong
903 views16 Folien
ASP.NET MVC Presentation von
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC PresentationVolkan Uzun
5.4K views34 Folien

Was ist angesagt?(20)

MVC From Beginner to Advance in Indian Style by - Indiandotnet von Indiandotnet
MVC From Beginner to Advance in Indian Style by - IndiandotnetMVC From Beginner to Advance in Indian Style by - Indiandotnet
MVC From Beginner to Advance in Indian Style by - Indiandotnet
Indiandotnet575 views
Mvc von abhigad
MvcMvc
Mvc
abhigad581 views
ASP.NET MVC Presentation von Volkan Uzun
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
Volkan Uzun5.4K views
Dot net interview questions and asnwers von kavinilavuG
Dot net interview questions and asnwersDot net interview questions and asnwers
Dot net interview questions and asnwers
kavinilavuG99 views
ASP.NET MVC. von Ni
ASP.NET MVC.ASP.NET MVC.
ASP.NET MVC.
Ni 1.1K views
Mvc 4 0_jayant_jindal_28082010 von Rishu Mehra
Mvc 4 0_jayant_jindal_28082010Mvc 4 0_jayant_jindal_28082010
Mvc 4 0_jayant_jindal_28082010
Rishu Mehra699 views
AngularJS 101 - Everything you need to know to get started von Stéphane Bégaudeau
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get started
Stéphane Bégaudeau55.5K views

Similar a ASp.net Mvc 5

ASP.NET MVC Fundamental von
ASP.NET MVC FundamentalASP.NET MVC Fundamental
ASP.NET MVC Fundamentalldcphuc
4.9K views22 Folien
Mvc von
MvcMvc
MvcFurqan Ashraf
845 views51 Folien
Technoligent providing custom ASP.NET MVC development services von
Technoligent providing custom ASP.NET MVC development servicesTechnoligent providing custom ASP.NET MVC development services
Technoligent providing custom ASP.NET MVC development servicesAaron Jacobson
878 views16 Folien
Asp.net With mvc handson von
Asp.net With mvc handsonAsp.net With mvc handson
Asp.net With mvc handsonPrashant Kumar
454 views64 Folien
Marlabs - ASP.NET Concepts von
Marlabs - ASP.NET ConceptsMarlabs - ASP.NET Concepts
Marlabs - ASP.NET ConceptsMarlabs
3.3K views20 Folien
ASP.NET MVC Presentation von
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentationivpol
23.6K views11 Folien

Similar a ASp.net Mvc 5(20)

ASP.NET MVC Fundamental von ldcphuc
ASP.NET MVC FundamentalASP.NET MVC Fundamental
ASP.NET MVC Fundamental
ldcphuc4.9K views
Technoligent providing custom ASP.NET MVC development services von Aaron Jacobson
Technoligent providing custom ASP.NET MVC development servicesTechnoligent providing custom ASP.NET MVC development services
Technoligent providing custom ASP.NET MVC development services
Aaron Jacobson878 views
Marlabs - ASP.NET Concepts von Marlabs
Marlabs - ASP.NET ConceptsMarlabs - ASP.NET Concepts
Marlabs - ASP.NET Concepts
Marlabs3.3K views
ASP.NET MVC Presentation von ivpol
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
ivpol23.6K views
Introduction To Mvc von Volkan Uzun
Introduction To MvcIntroduction To Mvc
Introduction To Mvc
Volkan Uzun2.4K views
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web... von SoftServe
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe - "ASP.NET MVC як наступний крок у розвитку технології розробки Web...
SoftServe1.2K views
ASP.NET Presentation von Rasel Khan
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
Rasel Khan2.5K views
Head first asp.net mvc 2.0 rtt von Lanvige Jiang
Head first asp.net mvc 2.0 rttHead first asp.net mvc 2.0 rtt
Head first asp.net mvc 2.0 rtt
Lanvige Jiang3.6K views
MVC First Basic von Shyam Sir
MVC First BasicMVC First Basic
MVC First Basic
Shyam Sir866 views
Introduction Asp.Net MVC5 |MVC5 Tutorial for Beginners & Advanced | Dot Net T... von Dot Net Tricks
Introduction Asp.Net MVC5 |MVC5 Tutorial for Beginners & Advanced | Dot Net T...Introduction Asp.Net MVC5 |MVC5 Tutorial for Beginners & Advanced | Dot Net T...
Introduction Asp.Net MVC5 |MVC5 Tutorial for Beginners & Advanced | Dot Net T...
Dot Net Tricks 88 views
Java Spring MVC Framework with AngularJS by Google and HTML5 von Tuna Tore
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5
Tuna Tore4K views
springmvc-150923124312-lva1-app6892 von Tuna Tore
springmvc-150923124312-lva1-app6892springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892
Tuna Tore408 views
Asp.net mvc 5 course module 1 overview von Sergey Seletsky
Asp.net mvc 5 course   module 1 overviewAsp.net mvc 5 course   module 1 overview
Asp.net mvc 5 course module 1 overview
Sergey Seletsky2.8K views

Último

Ask The Expert! Nonprofit Website Tools, Tips, and Technology.pdf von
 Ask The Expert! Nonprofit Website Tools, Tips, and Technology.pdf Ask The Expert! Nonprofit Website Tools, Tips, and Technology.pdf
Ask The Expert! Nonprofit Website Tools, Tips, and Technology.pdfTechSoup
62 views28 Folien
ppt_dunarea.pptx von
ppt_dunarea.pptxppt_dunarea.pptx
ppt_dunarea.pptxvvvgeorgevvv
53 views5 Folien
JRN 362 - Lecture Twenty-Three (Epilogue) von
JRN 362 - Lecture Twenty-Three (Epilogue)JRN 362 - Lecture Twenty-Three (Epilogue)
JRN 362 - Lecture Twenty-Three (Epilogue)Rich Hanley
43 views57 Folien
What is Digital Transformation? von
What is Digital Transformation?What is Digital Transformation?
What is Digital Transformation?Mark Brown
41 views11 Folien
Pharmaceutical Analysis PPT (BP 102T) von
Pharmaceutical Analysis PPT (BP 102T) Pharmaceutical Analysis PPT (BP 102T)
Pharmaceutical Analysis PPT (BP 102T) yakshpharmacy009
116 views29 Folien
StudioX.pptx von
StudioX.pptxStudioX.pptx
StudioX.pptxNikhileshSathyavarap
106 views18 Folien

Último(20)

Ask The Expert! Nonprofit Website Tools, Tips, and Technology.pdf von TechSoup
 Ask The Expert! Nonprofit Website Tools, Tips, and Technology.pdf Ask The Expert! Nonprofit Website Tools, Tips, and Technology.pdf
Ask The Expert! Nonprofit Website Tools, Tips, and Technology.pdf
TechSoup 62 views
JRN 362 - Lecture Twenty-Three (Epilogue) von Rich Hanley
JRN 362 - Lecture Twenty-Three (Epilogue)JRN 362 - Lecture Twenty-Three (Epilogue)
JRN 362 - Lecture Twenty-Three (Epilogue)
Rich Hanley43 views
What is Digital Transformation? von Mark Brown
What is Digital Transformation?What is Digital Transformation?
What is Digital Transformation?
Mark Brown41 views
Pharmaceutical Analysis PPT (BP 102T) von yakshpharmacy009
Pharmaceutical Analysis PPT (BP 102T) Pharmaceutical Analysis PPT (BP 102T)
Pharmaceutical Analysis PPT (BP 102T)
yakshpharmacy009116 views
Guess Papers ADC 1, Karachi University von Khalid Aziz
Guess Papers ADC 1, Karachi UniversityGuess Papers ADC 1, Karachi University
Guess Papers ADC 1, Karachi University
Khalid Aziz105 views
OOPs - JAVA Quick Reference.pdf von ArthyR3
OOPs - JAVA Quick Reference.pdfOOPs - JAVA Quick Reference.pdf
OOPs - JAVA Quick Reference.pdf
ArthyR364 views
GSoC 2024 .pdf von ShabNaz2
GSoC 2024 .pdfGSoC 2024 .pdf
GSoC 2024 .pdf
ShabNaz242 views
INT-244 Topic 6b Confucianism von S Meyer
INT-244 Topic 6b ConfucianismINT-244 Topic 6b Confucianism
INT-244 Topic 6b Confucianism
S Meyer49 views
12.5.23 Poverty and Precarity.pptx von mary850239
12.5.23 Poverty and Precarity.pptx12.5.23 Poverty and Precarity.pptx
12.5.23 Poverty and Precarity.pptx
mary850239514 views
11.30.23A Poverty and Inequality in America.pptx von mary850239
11.30.23A Poverty and Inequality in America.pptx11.30.23A Poverty and Inequality in America.pptx
11.30.23A Poverty and Inequality in America.pptx
mary850239181 views
Career Building in AI - Technologies, Trends and Opportunities von WebStackAcademy
Career Building in AI - Technologies, Trends and OpportunitiesCareer Building in AI - Technologies, Trends and Opportunities
Career Building in AI - Technologies, Trends and Opportunities
WebStackAcademy47 views
Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptx von Niranjan Chavan
Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptxGuidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptx
Guidelines & Identification of Early Sepsis DR. NN CHAVAN 02122023.pptx
Niranjan Chavan42 views
UNIT NO 13 ORGANISMS AND POPULATION.pptx von Madhuri Bhande
UNIT NO 13 ORGANISMS AND POPULATION.pptxUNIT NO 13 ORGANISMS AND POPULATION.pptx
UNIT NO 13 ORGANISMS AND POPULATION.pptx
Madhuri Bhande43 views
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37 von MysoreMuleSoftMeetup
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
Payment Integration using Braintree Connector | MuleSoft Mysore Meetup #37
11.21.23 Economic Precarity and Global Economic Forces.pptx von mary850239
11.21.23 Economic Precarity and Global Economic Forces.pptx11.21.23 Economic Precarity and Global Economic Forces.pptx
11.21.23 Economic Precarity and Global Economic Forces.pptx
mary85023952 views

ASp.net Mvc 5

  • 1. www.softserve.ua ASP.NET MVC 5. Part 1 Overview. Controllers. Views. 2014-11-25 by O. Shvets Reviewed by O. Konovalenko
  • 2. 2www.softserve.ua Agenda ● ASP.NET Architecture ● ASP.NET MVC 3, 4, 5 ● Controllers ● Views
  • 3. 3www.softserve.ua MVC Pattern ● Controller – application logic. Communicate with user. It receives and handles user queries, interrupts with Model, and returns results by View objects ● Model – contains classes that represent data, performs operations with data-bases and organizes relations between data- classes. ● View – performs UI representation. Works with model.
  • 5. 5www.softserve.ua Lifecycle of an ASP.NET MVC 5 Application
  • 6. 6www.softserve.ua Benefits of ASP.NET MVC ● Higher quality requirements o Test Driven Development ● Cross platforms support o Windows, PDA, IPhone, … ● HTML code control ● Clear ULR navigation o http://musica.ua/groups/metallica ● Maintainable code and command work
  • 7. 7www.softserve.ua What’s new in ASP.NET MVC 3 ● Extensible Scaffolding with MvcScaffold integration ● HTML 5 enabled project templates ● The Razor View Engine ● Support for Multiple View Engines ● Controller Improvements ● JavaScript and Ajax ● Model Validation Improvements ● Dependency Injection Improvements
  • 8. 8www.softserve.ua What’s new in ASP.NET MVC 4 ● ASP.NET Web API ● Enhancements to Default Project Templates ● Mobile Project Template and Empty Project Template ● jQuery Mobile, the View Switcher, and Browser Overriding ● Task Support for Asynchronous Controllers ● Azure SDK ● Database Migrations ● Add Controller to any project folder ● Bundling and Minification ● Enabling Logins from Facebook and Other Sites Using OAuth and OpenID
  • 9. 9www.softserve.ua What’s new in ASP.NET MVC 5 ● One ASP.NET project template ● ASP.NET Identity ● Bootstrap ● Authentication filters ● Filter overrides ● Attribute routing
  • 10. 10www.softserve.ua What’s new in ASP.NET MVC 5.1 & 5.2 ● New Features in ASP.NET MVC 5.1 o Attribute routing improvements o Bootstrap support for editor templates o Enum support in views o Unobtrusive validation for MinLength/MaxLength Attributes o Supporting the ‘this’ context in Unobtrusive Ajax ● New Features in ASP.NET MVC 5.2 o Attribute routing improvements
  • 17. 17www.softserve.ua Passing Parameters As Route Data ● In ASP.NET MVC applications, it's more typical to pass in parameters as route data than passing them as query strings
  • 18. 18www.softserve.ua URL Route Mapping Features ● You can include "-", ".", ";" or any other characters you want as part of your route rules o This would pass appropriate "language", "locale", and "category" parameters to a ProductsController: {language}-{locale}/products/browse/{category} /en-us/products/browse/food language=en, locale=us, category=food o You can use the "." file extension type at the end of a URL to determine whether to render back the result in either a XML or HTML format products/browse/{category}.{format} /products/browse/food.xml category=food, format=xml /products/browse/food.html category=food, format=html
  • 22. 22www.softserve.ua Layout Page ● The layout has access to the same properties the Razor view has, including: o AjaxHelper (through the Ajax property) o HtmlHelper (through the Html property) o ViewData and model o UrlHelper (through the Url property) o TempData and ViewContext ● To specify a layout inside a view, we can specify the layout to use with the Layout property: @{ Layout = "~/Views/Shared/_Layout.cshtml"; }
  • 23. 23www.softserve.ua Razor View Engine ● an alternative to the Web Forms view engine ● is responsible for rendering views in the Razor format (either .cshtml files or .vbhtml files) o The Web Form view engine is used to support the older-format Web Form views (.aspx and .ascx files) Web Forms view engine example: <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Product[]>" %> <ul> <% foreach(var product in Model) { %> <li><%: product.Name %></li> <% } %> </ul> Razor view engine example @model Product[] <ul> @foreach(var product in Model) { <li>@product.Name</li> } </ul>
  • 24. 24www.softserve.ua The Fundamentals of the Razor Syntax ● ‘@’ is the magic character that precedes code instructions in the following contexts o ‘@’ For a single code line/values o ‘@{ … }’ For code blocks with multiple lines o ‘@:’ For single plain text to be rendered in the page <p> Current time is: @DateTime.Now </p> @{ var name = “John”; var nameMessage = "Hello, my name is " + name + " Smith"; } @{ @:The day is: @DateTime.Now.DayOfWeek. It is a <b>great</b> day! }
  • 25. 25www.softserve.ua The Fundamentals of the Razor Syntax ● HTML markup lines can be included at any part of the code: ● Razor uses code syntax to infer indent: @if(IsPost){ <p>Hello, the time is @DateTime.Now and this page is a postback!</p> } else { <p>Hello, today is: </p> @DateTime.Now } // This won’t work in Razor. Content has to be // wrapped between { } if( i < 1 ) int myVar=0;
  • 26. 26www.softserve.ua Passing Data to the View ● There are three different ways to pass data to a view: o by using the ViewDataDictionary, o by using the ViewBag, o by using strongly typed views.
  • 27. 27www.softserve.ua ViewDataDictionary ● It isn’t recommended to use ViewDataDictionary o You have to perform type casts whenever you want to retrieve something from the dictionary.
  • 28. 28www.softserve.ua ViewBag ● It isn’t recommended to use ViewBag ● The ViewBag provides a way to pass data from the controller to the view o It makes use of the dynamic language features of C# 4 ● Set properties on the dynamic ViewBag property within your controller: ● A ViewBag property is also available in the view:
  • 29. 29www.softserve.ua Strongly Typed Views ● Views can inherit from two types by default: o System.Web.Mvc.WebViewPage or o System.Web.Mvc.WebViewPage<T> ● Class WebViewPage<T> provides a strongly typed wrapper over ViewData.Model through the Model property and provides access to strongly typed versions of the associated view helper objects - AjaxHelper and HtmlHelper
  • 31. 31www.softserve.ua Passing Model to the View ● By specifying the model type using the @model keyword, view will inherit from WebViewPage<T> instead of WebViewPage, and we will have a strongly typed view public ActionResult Index() { //… SomeModel model = new SomeModel(); return View(model); } <dl> <dt>Name:</dt> <dd>@Model.Name</dd> <dt>Date Added:</dt> <dd>@Model.DateAdded</dd> <dt>Message:</dt> <dd>@Model.Message</dd> </dl>
  • 32. 32www.softserve.ua ● Partials are intended to render snippets of content ● If you find yourself copying and pasting one snippet of HTML from one view to the next, that snippet is a great candidate for a partial ● To render a partial we can use the RenderPartial method or the Partial method in a parent view
  • 33. 33www.softserve.ua Partial Views ● The partial name is used to locate the partial markup in the locations: o <Area><Controller><PartialName>.cshtml o <Area>Shared<PartialName>.cshtml o <Controller><PartialName>.cshtml o Shared<PartialName>.cshtml ● In order to prevent accidentally using a partial view from an action, we prefix the view name with an underscore ● Html.RenderPartial(...) renders the partial immediately to the response stream ● Html.Partial(...) returns a string o In Razor, Html.RenderPartial must be in a code block

Hinweis der Redaktion

  1. © Oleg Shvets, 2014.
  2. This document shows the lifecycle of every ASP.NET MVC application, beginning from receiving the HTTP request from the client to sending the HTTP response back to the client. It is designed both as an education tool for those who are new to ASP.NET MVC and also as a reference for those who need to drill into specific aspects of the application