0% found this document useful (0 votes)
26 views16 pages

Unit IV and Unit V

The document provides an overview of the MVC architecture in the .NET framework, detailing the roles of Model, View, and Controller, and how they interact within an ASP.NET MVC application. It also contrasts ASP.NET MVC with ASP.NET WebForms, explains routing and attribute routing, and discusses important components such as HTML Helpers, View Engines, and Data Annotations. Additionally, it outlines the structure of the App_Start folder and various action results available in ASP.NET MVC.

Uploaded by

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

Unit IV and Unit V

The document provides an overview of the MVC architecture in the .NET framework, detailing the roles of Model, View, and Controller, and how they interact within an ASP.NET MVC application. It also contrasts ASP.NET MVC with ASP.NET WebForms, explains routing and attribute routing, and discusses important components such as HTML Helpers, View Engines, and Data Annotations. Additionally, it outlines the structure of the App_Start folder and various action results available in ASP.NET MVC.

Uploaded by

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

Unit IV: MVC architecture in .

NET framework
 MVC design pattern

o MVC design pattern splits an application into three main aspects:


Model, View, and Controller.
o Model - The Model represents a set of classes that describe the
business logic i.e. business model as well as data access operations i.e.
data model. It also defines business rules for data means how the data
can be changed and manipulated.
1. The Model in ASP.NET MVC can be broken down into several
different layers as given below:
2. Objects or ViewModel or Presentation Layer - This layer
contains simple objects or complex objects which are used to
specify strongly-typed view. These objects are used to pass data
from the controller to a strongly-typed view and vice versa.
3. The classes for these objects can have specific validation rules
which are defined by using data annotations. Typically, these
classes have the properties that you want to display on the
corresponding view/page.
4. Business Layer - This layer helps you to implement your
business logic and validations for your application. This layer
makes use of Data Access Layer for persisting data into
database. Also, this layer is directly invoked by the Controller
to do processing on input data and sent back to view.
5. Data Access Layer - This layer provides objects to access and
manipulate the database of your application. Typically, this
layer is made by using ORM tools like Entity Framework or
NHibernate etc.
o View - The View represents the UI components like CSS, jQuery,
HTML, etc. It is only responsible for displaying the data that is
received from the controller as a result. This also transforms the
model(s) into UI.
 Controller – The Controller is responsible for processing incoming
requests. It receives input from users via the View, then processes the user's
data with the help of Model and passes the results back to the View.
Typically, it acts as the coordinator between the View and the Model.
o Today, this pattern is used by many popular framework like as Ruby
on Rails, Spring Framework, Apple iOS Development and ASP.NET
MVC.
 How Model, View and Controller communicate with each other in
ASP.NET MVC?
o There are the following rules for communication among Model, View,
and Controller:
1. User interacts with the Controller.
2. There is a one-to-many relationship between the Controller and
View means one controller can mapped to multiple views.
3. Controller and View can have a reference to model.
4. Controller and View can talk to each other.
5. Model and View cannot talk to each other directly. They
communicate to each other with the help of controller.
 What is the difference between ASP.NET WebForm and ASP.NET
MVC?
ASP.NET WebForm ASP.NET MVC
ASP.NET Web Form follows a traditional ASP.NET MVC is lightweight and
event-driven development model. follows the MVC (Model, View, and
Controller) pattern-based development
model.
ASP.NET Web Form has server controls. ASP.NET MVC has html helpers.
ASP.NET Web Form has state management ASP.NET MVC has no automatic state
(such as view state, and session) techniques. management techniques.
ASP.NET Web Form has file-based URLs, ASP.NET MVC has route-based URLs,
meaning the file name in the URLs must have which means URLs are divided into
its physical existence. controllers and actions and moreover, it
is based on the controller, not on a
physical file.
ASP.NET Web Form follows WebForm ASP.NET MVC follows customizable
Syntax syntax (Razor as default)
In ASP.NET Web Form, Web Forms (ASPX) In ASP.NET MVC, Views and logic are
i.e. views are tightly coupled to Code behind kept separately
(ASPX.CS) i.e. logic.
ASP.NET Web Form has Master Pages for a ASP.NET MVC has Layouts for a
consistent look and feel. consistent look and feel.
ASP.NET Web Form has User Controls for ASP.NET MVC has Partial Views for
code reusability. code re-usability.
ASP.NET Web Form is not Open Source. ASP.NET Web MVC is an Open
Source.

 What is Routing in ASP.NET MVC?


o Routing is a pattern-matching system that monitors incoming requests
and figures out what to do with that request. At runtime, the Routing
engine uses the Route table for matching the incoming request's URL
pattern against the URL patterns defined in the Route table. You can
register one or more URL patterns to the Route table at
Application_Start event.

o
o When the routing engine finds a match in the route table for the
incoming request's URL, it forwards the request to the appropriate
controller and action. If there is no match in the route table for the
incoming request's URL, it returns a 404 HTTP status code.

 How to define a route in ASP.NET MVC?


o You can define a route in ASP.NET MVC as given below:
o http://localhost:61411/Home/Index
o
o Always remember route name should be unique across the entire
application. Route name can’t be duplicated. In the above example, we
have defined the Route Pattern {controller}/{action}/{id} and also
provide the default values for controller, action, and id parameters.
Default values mean if you will not provide the values for the controller
or action or id defined in the pattern then these values will be serve by
the routing system.
o Suppose your web application is running on www.example.com then
the url pattren for you application will be
www.example.com/{controller}/{action}/{id}. Hence you need to
provide the controller name followed by action name and id if it is
required. If you will not provide any of the value then default values of
these parameters will be provided by the routing system. Here is a list
of URLs that match and don't match this route pattern.
o
o http://localhost:54044/Home/About
 What is Attribute Routing and how to define it?
o ASP.NET MVC5 and WEB API 2 support a new type of routing, called
attribute routing. In this routing, attributes are used to define routes.
Attribute routing provides you more control over the URIs by defining
routes directly on actions and controllers in your ASP.NET MVC
application and WEB API.
1. Controller level routing – You can define routes at controller
level which apply to all actions within the controller unless a
specific route is added to an action.
2. Action level routing – You can define routes at action level
which apply to a specific action with in the controller.

 Attribute routing should be configured before the convention-


based routing.
 When you combine attribute routing with convention-based
routing, actions which do not have Route attribute for defining
attribute-based routing will work according to convention-based
routing. In above example Contact action will work according to
convention-based routing.
 When you have only attribute routing, actions which do not have
Route attribute for defining attribute-based routing will not be
the part of attribute routing. In this way they can’t be access from
outside as a URI.

 How to enable Attribute Routing in ASP.NET MVC?


o Enabling attribute routing in your ASP.NET MVC5 application is
simple, just add a call to routes.MapMvcAttributeRoutes() method with
in RegisterRoutes() method of RouteConfig.cs file.

 What are important namespaces in ASP.NET MVC?


o System.Web.Mvc - This namespace contains classes and interfaces
that support the MVC pattern for ASP.NET Web applications. This
namespace includes classes that represent controllers, controller
factories, action results, views, partial views, and model binders.
o System.Web.Mvc.Ajax - This namespace contains classes that
supports Ajax scripting in an ASP.NET MVC application. The
namespace includes support for Ajax scripts and Ajax option settings
as well.
o System.Web.Mvc.Html – This namespace contains classes that help
render HTML controls in an MVC application. This namespace
includes classes that support forms, input controls, links, partial views,
and validation.

 What is View Engine?


o A View Engine is a MVC subsystem that has its own markup syntax. It
is responsible for converting server-side template into HTML markup
and rendering it to the browser. Initially, ASP.NET MVC ships with
one view engine, web forms (ASPX) and from ASP.NET MVC3 a new
view engine, Razor is introduced. With ASP.NET MVC, you can also
use other view engines like Spark, etc.

 What is Razor View Engine?


o Razor Engine is an advanced view engine that was introduced with
MVC3. This is not a new language but it is a new markup syntax. Razor
has new and advance syntax that are compact, expressive and reduces
typing. Razor syntax are easy to learn and much clean than Web Form
syntax. Razor uses @ symbol to write markup as:
o @Html.ActionLink("SignUp", "SignUp")
 What are HTML Helpers in ASP.NET MVC?
o An HTML Helper is just a method that returns a HTML string. The
string can represent any type of content that you want. For example,
you can use HTML Helpers to render standard HTML tags like HTML
<input>, and <button> tags etc.
o You can also create your own HTML Helpers to render more complex
content such as a menu strip or an HTML table for displaying database
data.

 What are the different types of HTML Helpers?


o There are three types of HTML helpers as given below:
 Inline Html Helpers - These are create in the same view by
using the Razor @helper tag. These helpers can be reused only
on the same view.
 Built-In Html Helpers - Built-In Html Helpers are extension
methods on the HtmlHelper class. The Built-In Html helpers can
be divided into three categories-
1. Standard Html Helpers - These helpers are used to
render the most common types of HTML elements like as
HTML text boxes, checkboxes etc. A list of most common
standard html helpers is given below:
2. Strongly Typed HTML Helpers - These helpers are used
to render the most common types of HTML elements in
strongly typed view like as HTML text boxes, checkboxes
etc. The HTML elements are created based on model
properties. The strongly typed HTML helpers work on
lambda expression. The model object is passed as a value
to lambda expression, and you can select the field or
property from model object to be used to set the id, name
and value attributes of the HTML helper. A list of most
common strongly-typed html helpers is given below:
3. Templated HTML Helpers - These helpers figure out
what HTML elements are required to render based on
properties of your model class. This is a very flexible
approach for displaying data to the user, although it
requires some initial care and attention to set up. To setup
proper HTML element with Templated HTML Helper,
make use of DataType attribute of DataAnnitation class.
For example, when you use DataType as Password, A
templated helper automatically render Password type
HTML input element.

o Custom Html Helpers - You can also create your own custom helper
methods by creating an extension method on the HtmlHelper class or
by creating static methods with in a utility class.

 What are Layouts in ASP.NET MVC?


o Layouts are used to maintain a consistent look and feel across multiple
views within ASP.NET MVC application. As compared to Web Forms,
layouts serve the same purpose as master pages, but offer a simple
syntax and greater flexibility.

 What is App_Start folder in ASP.NET MVC?


o App_Start folder has been introduced in MVC4. It contains various
configurations files like as BundleConfig.cs, FilterConfig.cs,
RouteConfig.cs, WebApiConfig.cs for your application. All these
settings are registered within Application_Start method of
Global.asax.cs file.
o BundleConfig.cs - This is used to create and register bundles for CSS
and JS files. By default, various bundles are added in this files including
jQuery, jQueryUI, jQuery validation, Modernizr, and Site CSS.
o FIlterConfig.cs - This is used to register global MVC filters like error
filters, actions filters etc. By default it contains HandleErrorAttribute
filter.
o RouteConfig.cs - This is used to register various route patterns for your
ASP.NET MVC application. By default, one route is registered here
named as Default Route.
 How can we send data from the controller to the view? How can we send
a data from action method to another action method?
 What are Action methods in ASP.NET MVC?
o 1. ViewResult - Returns a ViewResult which renders the specified or
default view by using controller View() helper method.
o 2. PartialViewResult- Returns a PartialViewResult which renders the
specified or default partial view (means a view without its layout) by
using controller PartialView() helper method.
o 3. RedirectResult - Returns a RedirectResult which Issues an HTTP 301
or 302 redirection to a specific URL by using controller Redirect()
helper method.
o 4. RedirectToRouteResult - Returns a RedirectToRouteResult which
Issues an HTTP 301 or 302 redirection to an action method or specific
route entry by using controller RedirectToAction(),
RedirectToActionPermanent(), RedirectToRoute(),
RedirectToRoutePermanent() helper methods.
o 5. ContentResult - Returns a ContentResult which renders raw text like
as "Hello, DotNet Tricks!" by using controller Content() helper method.
o 6. JsonResult - Returns a JsonResult which serializes an object in JSON
format ( like as "{ "Message": Hello, World! }") and renders it by using
controller Json() helper method.
o 7. JavaScriptResult - Returns a JavaScriptResult which renders a
snippet of JavaScript code like as "function hello() { alert(Hello,
World!); }" by using controller JavaScript() helper method. This is used
only in AJAX scenarios.
o 8. FileResult - Returns a FileResult which renders the contents of a file
like as PDF, DOC, Excel etc. by using controller File() helper method.
o 9. EmptyResult - Returns no result returned by an action. This has no
controller helper method.
o 10. HttpNotFoundResult - Returns an HttpNotFoundResult which
renders a 404 HTTP Status Code response by using controller
HttpNotFound() helper method.
o 11. HttpUnauthorizedResult - Returns an HttpUnauthorizedResult
which renders a 401 HTTP Status Code (means "not authorized")
response. This has no controller helper method. This is used for
authentication (forms authentication or Windows authentication) to ask
the user to log in.
o 12. HttpStatusCodeResult - Returns an HttpStatusCodeResult which
renders a specified HTTP code response. This has no controller helper
method.
 What is ActionResult and how is it different from others?
o The ActionResult class is the base class for all action results. An action
result can be of type ViewResult, JsonResult, RedirectResult and so on.
Hence, when your action method returns multiple results based on
different conditions, ActionResult is the best choice. Since it can return
any type of result.

 How to make a Non-Action method in ASP.NET MVC?


o By default, the ASP.NET MVC framework treats all public methods of
a controller class as action methods. If you do not want a public method
to be an action method, you must mark that method with the
NonActionAttribute attribute.
[NonAction]
public void DoSomething()
{ // Method logic }
 What is Data Annotations in ASP.NET MVC?
o Data validation is a key aspect for developing web application. In
Asp.net MVC, we can easily apply validation to web application by
using Data Annotation attribute classes to model class. Data Annotation
attribute classes are present in
System.ComponentModel.DataAnnotations namespace and are
available to Asp.net. projects like Asp.net web application & website,
Asp.net MVC, Web forms and also to Entity framework ORM models.
o Data Annotations help us to define the rules to the model classes or
properties for data validation and displaying suitable messages to end
users.
o Data Annotation Validator Attributes
o DataType - Specify the datatype of a property.
o DisplayName - specify the display name for a property.
o DisplayFormat - specify the display format for a property like different
format for Date property.
o Required - Specify a property as required.
o ReqularExpression - validate the value of a property by specified
regular expression pattern.
o Range - validate the value of a property within a specified range of
values.
o StringLength - specify min and max length for a string property.
o MaxLength - specify max length for a string property.
o Bind - specify fields to include or exclude when adding parameter or
form values to model properties.
o ScaffoldColumn - specify fields for hiding from editor forms.

You might also like