ASP.NET MVC Architecture Layouts, Filters, Sections, Helpers, Partial Views, Areas… SoftUni Team Technical Trainers Software University

Slides:



Advertisements
Similar presentations
Telerik School Academy ASP.NET MVC.
Advertisements

AngularJS Routing Routes, Route Parameters, Templates, Location, Navigation SoftUni Team Technical Trainers Software University
AngularJS Services Built-in and Custom Services SoftUni Team Technical Trainers Software University
Methods Writing and using methods, overloads, ref, out SoftUni Team Technical Trainers Software University
Software University Curriculum, Courses, Exams, Jobs SoftUni Team Technical Trainers Software University
PHP Basics Course Introduction SoftUni Team Technical Trainers Software University
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
ASP.NET MVC Essentials Routing, Controllers, Actions, Views, Areas… SoftUni Team Technical Trainers Software University
Advanced JavaScript Course Introduction SoftUni Team Technical Trainers Software University
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC SoftUni Team Technical Trainers Software University
AngularJS Directives Defining Custom Directives SoftUni Team Technical Trainers Software University
Software Testing Lifecycle Exit Criteria Evaluation, Continuous Integration Ivan Yonkov Technical Trainer Software University.
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
Design Patterns: Structural Design Patterns
JavaScript Design Patterns Private Fields, Module, Revealing Module, Revealing Prototype, … Software University Technical Trainers SoftUni.
Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University
Consuming REST Services from C# SoftUni Team Technical Trainers Software University
Start Your Own Blog Angel Georgiev Part-time Trainer angeru.softuni-friends.org Software University The Culture of Knowledge Sharing.
Svetlin Nakov Technical Trainer Software University
Build Processes and Continuous Integration Automating Build Processes Software University Technical Trainers SoftUni Team.
Processing Redis with.NET How to Operate with Redis Databases SoftUni Team Technical Trainers Software University
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC Angel Georgiev Part-time Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding SoftUni Team Technical Trainers Software University
Controllers and Markup Controllers, $scope, Markup, Directives, Expressions, Binding, Filters, Validation SoftUni Team Technical Trainers Software University.
AMD and RequireJS Splitting JavaScript Code into Dependent Modules Software University Technical Trainers SoftUni Team.
Asynchronous Web Services Writing Asynchronous Web Services SoftUni Team Technical Trainers Software University
Sessions and Cookies State Management, Cookies, Sessions, Hidden Fields SoftUni Team Technical Trainers Software University
Web Fundamentals (HTML and CSS) Course Introduction SoftUni Team Technical Trainers Software University
Controls, Widgets, Grid…
Jekyll Static Site Generator Template-Based Site Generation Svetlin Nakov Technical Trainer Software University
Web Fundamentals (HTML and CSS) Course Introduction Svetlin Nakov Technical Trainer Software University
HTML Forms Forms, Controls, Fields, Inputs, Submission, Validation SoftUni Team Technical Trainers Software University
Forms Overview, Query string, Submitting arrays, PHP & HTML, Input types, Redirecting the user Mario Peshev Technical Trainer Software.
JavaScript Modules and Patterns Private Fields, Module, Revealing Module, Revealing Prototype, … Software University Technical Trainers.
Web Development Tools Tools for Front-End Developers Writing HTML and CSS Code SoftUni Team Technical Trainers Software University
Web Fundamentals (HTML and CSS)
Responsive Design Design that Adapts to Different Devices SoftUni Team Technical Trainers Software University
Tables, Rows, Columns, Cells, Header, Footer, Colspan, Rowspan
CSS Transitions and Animations Animated HTML Elements SoftUni Team Technical Trainers Software University
Design Patterns: Structural Design Patterns General and reusable solutions to common problems in software design Software University
Events Event Handling in JavaScript SoftUni Team Technical Trainers Software University
JavaScript Applications Course Introduction SoftUni Team Technical Trainers Software University
Mocking with Moq Tools for Easier Unit Testing SoftUni Team Technical Trainers Software University
Working with Data Model Binders, Display Templates, Editor Templates, Validation… SoftUni Team Technical Trainers Software University
Mocking Unit Testing Methods with External Dependencies SoftUni Team Technical Trainers Software University
Mocking with Moq Mocking tools for easier unit testing Svetlin Nakov Technical Trainer Software University
JavaScript Tools Tools for Writing / Editing / Debugging JavaScript Code Svetlin Nakov Technical Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding Svetlin Nakov Technical Trainer Software University
Sets, Dictionaries SoftUni Team Technical Trainers Software University
JavaScript Applications Course Introduction SoftUni Team Technical Trainers Software University
Creating Content Defining Topic, Creating Technical Training Materials SoftUni Team Technical Trainers Software University
Software Technologies Course Overview SoftUni Team Technical Trainers Software University
Programming Fundamentals Course Introduction SoftUni Team Technical Trainers Software University
Doctrine The PHP ORM SoftUni Team Technical Trainers Software University
Creating Content Defining Topic, Creating Technical Training Materials SoftUni Team Technical Trainers Software University
ASP.NET MVC Course Program, Trainers, Evaluation, Exams, Resources SoftUni Team Technical Trainers Software University
Web Storage and Cookies Cookies, Local and Session Storage SoftUni Team Technical Trainers Software University
First Steps in PHP Creating Very Simple PHP Scripts SoftUni Team Technical Trainers Software University
AngularJS Best Practices High Quality SPA Applications SoftUni Team Technical Trainers Software University
Inheritance Class Hierarchies SoftUni Team Technical Trainers Software University
Stacks and Queues Processing Sequences of Elements SoftUni Team Technical Trainers Software University
Generics SoftUni Team Technical Trainers Software University
Introduction to MVC SoftUni Team Introduction to MVC
ASP.NET MVC Essentials ASP.NET MVC Telerik Software Academy
State Management Cookies, Sessions SoftUni Team State Management
ASP.NET Razor Engine SoftUni Team ASP.NET MVC Introduction
ASP.NET MVC Introduction
Extending functionality using Collections
ASP.NET Filters SoftUni Team ASP.NET MVC Introduction
ASP.NET Razor Engine SoftUni Team ASP.NET MVC Introduction
Presentation transcript:

ASP.NET MVC Architecture Layouts, Filters, Sections, Helpers, Partial Views, Areas… SoftUni Team Technical Trainers Software University

2 1.Action Filters 2.Razor Views  Layouts and sections  Helpers  Partial views 3.Areas Table of Contents

3  Apply pre- and post-processing logic  Similar to HTTP Modules  Can be applied to actions and to controllers  Global filters can be registered in GlobalFilters.  Filters (or in /App_Start/FilterConfig.cs ) Action Filters NameDescription OutputCacheCache the output of a controller ValidateInput(false)Turn off request validation and allow dangerous input (html tags) AuthorizeRestrict an action to authorized users or roles ValidateAntiForgeryTokenHelps prevent cross site request forgeries HandleErrorCan specify a view to render in the event of an unhandled exception

4  Create a C# class file in /Filters/  Inherit ActionFilterAttribute  We can override the following methods:  OnActionExecuting(ActionExecutingContext)  OnActionExecuted(ActionExecutedContext)  OnResultExecuting(ResultExecutingContext)  OnResultExecuted(ResultExecutedContext)  We can apply our new attribute to a controller, method or globally in GlobalFilters.Filters Custom Action Filter

5 Custom Action Filter (2) [Log] public class DepartmentController : Controller { … } public class LogAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) public override void OnActionExecuting(ActionExecutingContext filterContext) { … } { … } public override void OnActionExecuted(ActionExecutedContext filterContext) public override void OnActionExecuted(ActionExecutedContext filterContext) { … } { … } public override void OnResultExecuting(ResultExecutingContext filterContext) public override void OnResultExecuting(ResultExecutingContext filterContext) { … } { … } public override void OnResultExecuted(ResultExecutedContext filterContext) public override void OnResultExecuted(ResultExecutedContext filterContext) { … } { … }}

Advanced Razor Syntax

7  Defines a common site template  Similar to ASP.NET master pages (but better!)  Razor view engine renders content inside-out  First the view is redered, then the layout  Indicates where the view content should be placed when rendering Layout

8  Views don't need to specify layout since their default layout is set in their _ViewStart file:  ~/Views/_ViewStart.cshtml (code for all views)  Each view can specify custom layout pages  Views without layout: Views and Layouts

9  You can have one or more "sections" (optional)  They are defined in the views:  And may be rendered anywhere in the layout page using the method RenderSection() name, bool required)  If the section is required and not defined, an exception will be thrown (IsSectionDefined()) Sections

10  Each view inherits WebViewPage  ViewPage has a property named Html  Html property has methods that return string and can be used to generate HTML  Create inputs  Create links  Create forms  Other helper properties are also available  Ajax, Url, custom helpers View Helpers

11 Method TypeDescription BeginForm, BeginRouteForm FormReturns an internal object that represents an HTML form that the system uses to render the tag EndFormFormA void method, closes the pending tag CheckBox, CheckBoxForInputReturns the HTML string for a check box input element Hidden, HiddenForInputReturns the HTML string for a hidden input element Password, PasswordForInputReturns the HTML string for a password input element RadioButton, RadioButtonFor InputReturns the HTML string for a radio button input element TextBox, TextBoxForInputReturns the HTML string for a text input element Label, LabelForLabelReturns the HTML string for an HTML label element HTML Helpers

12 Method TypeDescription ActionLink, RouteLinkLinkReturns the HTML string for an HTML link DropDownList, DropDownListFor ListReturns the HTML string for a drop-down list ListBox, ListBoxForListReturns the HTML string for a list box TextArea, TextAreaForTextAreaReturns the HTML string for a text area Partial Returns the HTML string incorporated in the specified user control RenderPartialPartialWrites the HTML string incorporated in the specified user control to the output stream ValidationMessage, ValidationMessageFor ValidationReturns the HTML string for a validation message ValidationSummaryValidationReturns the HTML string for a validation summary message HTML Helpers (2)

13  Write extension methods for the HtmlHelper  Return a string or override the ToString() method  The TagBuilder class manages closing tags and attributes  Add namespace in web.config (if needed) Custom Helpers

14  Another way to write helpers:  Create the folder /App_Code/  Create a view in it (for example Helpers.cshtml)  Write a helper in it  You can use the helper in any view  You have a lot of code in views? => write helpers Custom Helpers (2)

15  Partial views render portions of a page  Reuse pieces of a view  Html helpers – Partial(), RenderPartial() and Action()  Razor partial views are still.cshtml files Partial Views Located in the same folder as other views or in Shared folder Sub-request

Areas

17  Some applications can have a large number of controllers  ASP.NET MVC lets us partition Web applications into smaller units (areas)  An area is effectively an MVC structure inside an application  Example: a large e-commerce application  Main store, users  Blog, forum  Administration Areas

Demo: Areas ASP.NET MVC structures (areas)

19  Layout, sections and partial views help us to separate the logic of our views  Helpers  Allow code reuse  Manage most of the complexity of writing HTML  Our project can be divided into areas  Smaller sections which have their own MVC structure Summary

? ? ? ? ? ? ? ? ? ASP.NET MVC Architecture

License  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" licenseCreative Commons Attribution- NonCommercial-ShareAlike 4.0 International 21  Attribution: this work may contain portions from  "ASP.NET MVC" course by Telerik Academy under CC-BY-NC-SA licenseASP.NET MVCCC-BY-NC-SA

Free Software University  Software University Foundation – softuni.orgsoftuni.org  Software University – High-Quality Education, Profession and Job for Software Developers  softuni.bg softuni.bg  Software Facebook  facebook.com/SoftwareUniversity facebook.com/SoftwareUniversity  Software YouTube  youtube.com/SoftwareUniversity youtube.com/SoftwareUniversity  Software University Forums – forum.softuni.bgforum.softuni.bg