MVC Intv Quest - Collection
MVC Intv Quest - Collection
com/site/interviewsharing/mvc/mvc-interview-questions-answers
View: Views represent the user interface, with which the end users interact. In short t
contained with in the UI.
Controller: Controller is the component that responds to user actions. Based on the u
controller, work with the model, and selects a view to render that displays the user in
contained with in the controller.
What is the greatest advantage of using asp.net mvc over asp.net webforms?
It is difficult to unit test UI with webforms, where views in mvc can be very easily uni
Which approach provides better support for test driven development - ASP.N
ASP.NET MVC
What are the 3 segments of the default route, that is present in an ASP.NET M
1st Segment - Controller Name
2nd Segment - Action Method Name
3rd Segment - Parameter that is passed to the action method
Example: http://pragimtech.com/Customer/Details/5
Controller Name = Customer
Action Method Name = Details
Parameter Id = 5
An ASP.NET web application that does make use of routing, makes use of URLs that d
in a Web site. Because the URL does not have to map to a file, you can use URLs that
and therefore are more easily understood by users.
What are the 3 things that are needed to specify a route?
1. URL Pattern - You can include placeholders in a URL pattern so that variable data
handler without requiring a query string.
2. Handler - The handler can be a physical file such as an .aspx file or a controller cl
3. Name for the Route - Name is optional.
If I have multiple filters impleted, what is the order in which these filters get
1. Authorization filters
2. Action filters
3. Response filters
4. Exception filters
What are the levels at which filters can be applied in an asp.net mvc applicat
1. Action Method
2. Controller
3. Application
[b]Is it possible to create a custom filter?[/b]
Yes
What symbol would you use to denote, the start of a code block in razor view
@
What symbol would you use to denote, the start of a code block in aspx view
<%= %>
When using razor views, do you have to take any special steps to proctect yo
from cross site scripting (XSS) attacks?
No, by default content emitted using a @ block is automatically HTML encoded to prot
attacks.
When using aspx view engine, to have a consistent look and feel, across all p
make use of asp.net master pages. What is asp.net master pages equivalent,
To have a consistent look and feel when using razor views, we can make use of layou
the shared folder, and are named as _Layout.cshtml
https://blog.interviewmocha.com/asp-net-mvc-interview-questions-for-experienced/
3. What is CSRF attack and how can we prevent the same in MVC?
6. Can we add constraints to the route? If yes, explain how we can do it?
7. What is the use of web API? Why Web API needed, if you have already RESTful services
using WCF?
8. You are developing as ASP.NET MVC application. You need to authenticate clients by using
NT LAN Manager. Which authentication method you will implement?
10. You have created a Microsoft ASP.NET application by using the Microsoft .NET
framework version 3.5. You plan to monitor the execution of the application at daily
intervals. You need to modify the application configuration to enable WebEvent monitoring.
What will you do?
13. Can you remove default View Engine in ASP.NET MVC? How?
14. You create a Microsoft ASP.NET application by using the Microsoft .NET Framework
version 3.5. You write the following code fragment.
You need to ensure that when you click the Button1 control, a selected list of items moves
from the ListBox1 control to the ListBox2 control. What will you do?
17. Can we use Bundling and Minification in ASP.NET MVC3 or ASP.NET 4.0?
18. You are modifying as ASP.NET MVC web application for a client. The client requires that
the application must be viewable on Android devices in a UI format native to the device.
What will you do?
19. You create a Microsoft ASP.NET application by using the Microsoft .NET Framework
version 3.5. All the content pages in the application use a single master. The master page
uses a static navigation menu to browse the site. You need to ensure that the content pages
can optionally replace the static navigation menu with their own menu controls. What will
you do?
Apart from these technical questions, ask these following general questions to find out
more about candidates ASP.NET MVC skills
20. What was the most interesting project you have participated in? Can you describe it and
tell why you consider it to be so interesting?
21. Do you like to participate in the analysis, design and deployment phases of IT project or
do you prefer to concentrate on the pure development of well-described task? Why?
22. I have noticed you listed Skill X on your CV. What’s your opinion about it?
23. Do you remember any programming project decision you made that was a failure? Why
do you think it was a mistake? Why did it happen? What did you learn from this experience?
Screening is not just looking through the candidate’s CV and calling him for the interview.
You don’t want to lose a candidate with potential and good programming skills. You don’t
want to qualify poor candidates for an interview with your IT team and waste your and
team’s precious time.
Following are features added newly : Mobile templates Added ASP.NET Web API
template for creating REST based services. Asynchronous controller task support.
Bundling of the java scripts. Segregating the configs for ASP.Net MVC routing,
Web API, Bundle etc.
Razor is the first major update to render HTML in ASP.Net MVC 3. Razor was
designed specifically for view engine syntax. Main focus of this would be to
simplify and code-focused templating for HTML generation. Below is the sample
of using Razor:
View Model is a plain class with properties, which is used to bind it to strongly
typed view. View Model can have the validation rules defined for its properties
using data annotations.
ASP.NET Web API supports this type routing. This is introduced in ASP.Net
MVC5. In this type of routing, attributes are being used to define the routes. This
type of routing gives more control over classic URI Routing. Attribute Routing can
be defined at controller level or at Action level like :
System.Web.ASP.Net MVC
System.Web.ASP.Net MVC.Ajax
System.Web.ASP.Net MVC.Html
System.Web.ASP.Net MVC.Async
What is ViewData?
Viewdata contains the key, value pairs as dictionary and this is derived from class :
"ViewDataDictionary". In action method we are setting the value for viewdata and
in view the value will be fetched by typecasting.
HTML Helpers are like controls in traditional web forms. But HTML helpers are
more lightweight compared to web controls as it does not hold viewstate and
events. HTML Helpers returns the HTML string which can be directly rendered to
HTML page. Custom HTML Helpers also can be created by overriding
"HtmlHelper" class.
AJAX Helpers are used to create AJAX enabled elements like as Ajax enabled
forms and links which performs the request asynchronously and these are
extension methods of AJAXHelper class which exists in namespace -
System.Web.ASP.Net MVC.
Layout pages are similar to master pages in traditional web forms. This is used to
set the common look across multiple pages. In each child page we can find : /p>
@{
Layout = "~/Views/Shared/TestLayout1.cshtml";
}
This indicates child page uses TestLayout page as it's master page.
Explain Sections is ASP.Net MVC?
Section are the part of HTML which is to be rendered in layout page. In Layout
page we will use the below syntax for rendering the HTML :
@RenderSection("TestSection")
If any child page does not have this section defined then error will be thrown so
to avoid that we can render the HTML like this :
@RenderSection("TestSection", required: false)
This page is used to make sure common layout page will be used for multiple
views. Code written in this file will be executed first when application is being
loaded.
Below are the methods used to render the views from action -
ActionResult is used to represent the action method result. Below are the subtypes
of ActionResult :
ViewResult
PartialViewResult
RedirectToRouteResult
RedirectResult
JavascriptResult
JSONResult
FileResult
HTTPStatusCodeResult
What are Non Action methods in ASP.Net MVC?
In ASP.Net MVC all public methods have been treated as Actions. So if you are
creating a method and if you do not want to use it as an action method then the
method has to be decorated with "NonAction" attribute as shown below :
[NonAction]
public void TestMethod()
{
// Method logic
}
"ActionName" attribute can be used for changing the action name. Below is the
sample code snippet to demonstrate more :
[ActionName("TestActionNew")]
public ActionResult TestAction()
{
return View();
}
So in the above code snippet "TestAction" is the original action name and in
"ActionName" attribute, name - "TestActionNew" is given. So the caller of this
action method will use the name "TestActionNew" to call this action.
What are Code Blocks in Views?
Unlike code expressions that are evaluated and sent to the response, it is the blocks
of code that are executed. This is useful for declaring variables which we may be
required to be used later.
@{
int x = 123;
string y = "aa";
}
The HelperPage.IsAjax property gets a value that indicates whether Ajax is being
used during the request of the Web page.
function DrpIndexChanged() { }
Empty
Create
Delete
Details
Edit
List
Can a view be shared across multiple controllers? If Yes, How we can do that?
Yes we can share a view across multiple controllers. We can put the view in the
"Shared" folder. When we create a new ASP.Net MVC Project we can see the
Layout page will be added in the shared folder, which is because it is used by
multiple child pages.
Can we add constraints to the route? If yes, explain how we can do it?
Below are the two types of extensions razor view can have :
Html.Partial
Html.RenderPartial
How we can add the CSS in ASP.Net MVC?
Below is the sample code snippet to add css to razor views : < link
rel="StyleSheet" href="/@Href Content/Site.css" Content/Site.css""
type="text/css"/>
Can I add ASP.Net MVC Testcases in Visual Studio Express?
No. We cannot add the test cases in Visual Studio Express edition it can be added
only in Professional and Ultimate versions of Visual Studio.
Glimpse is an open source tool for debugging the routes in ASP.Net MVC. It is the
client side debugger. Glimpse has to be turned on by visiting to local url link -
http://localhost:portname//glimpse.axd This is a popular and useful tool for
debugging which tracks the speed details, url details etc.
Mention some action filters which are used regularly in ASP.Net MVC?
Authentication
Authorization
HandleError
OutputCache
How can we determine action invoked from HTTP GET or HTTP POST?
This can be done in following way : Use class : "HttpRequestBase" and use the
method : "HttpMethod" to determine the action request type.
In Server how to check whether model has error or not in ASP.Net MVC?
if(ModelState.IsValid){
// No Validation Errors
}
For Model Binding we will use class called : "ModelBinders", which gives access
to all the model binders in an application. We can create a custom model binders
by inheriting "IModelBinder".
How we can handle the exception at controller level in ASP.Net MVC?
Exception Handling is made simple in ASP.Net MVC and it can be done by just
overriding "OnException" and set the result property of the filtercontext
object asshownbelowasshownbelow to the view detail, which is to be returned in case
of exception.
protected overrides void OnException(ExceptionContext filterContext)
{
}
Does Tempdata hold the data for other request in ASP.Net MVC?
If Tempdata is assigned in the current request then it will be available for the
current request and the subsequent request and it depends whether data in
TempData read or not. If data in Tempdata is read then it would not be available
for the subsequent requests.
As explained above in case data in Tempdata has been read in current request only
then "Keep" method has been used to make it available for the subsequent request.
@TempData["TestData"];
TempData.Keep("TestData");
Similar to Keep method we have one more method called "Peek" which is used for
the same purpose. This method used to read data in Tempdata and it maintains the
data for subsequent request.
Area is used to store the details of the modules of our project. This is really helpful
for big applications, where controllers, views and models are all in main controller,
view and model folders and it is very difficult to manage.
To create reusable widgets child actions are used and this will be embedded into
the parent views. In ASP.Net MVC Partial views are used to have reusability in the
application. Child action mainly returns the partial views.
[ChildActionOnly]
public ActionResult MenuBar()
{
//Logic here
return PartialView();
}
it's a design pattern and is used for developing loosely couple code. This is greatly
used in the software projects. This will reduce the coding in case of changes on
project design so this is vastly used.
NUnit
xUnit.NET
Ninject 2
Moq
What is Representational State Transfer RESTREST mean?
REST is an architectural style which uses HTTP protocol methods like GET,
POST, PUT, and DELETE to access the data. ASP.Net MVC works in this style.
In ASP.Net MVC 4 there is a support for Web API which uses to build the service
using HTTP verbs.
$('#CustomerName').rules("add", {
required: true,
minlength: 2,
messages: {
required: "Please enter name",
minlength: "Minimum length is 2"
}
});
Below is the scenario and the solution to solve multiple submit buttons issue.
Scenario :
@using (Html.BeginForm("MyTestAction","MyTestController")
{
<input type="submit" value="MySave" />
<input type="submit" value="MyEdit" />
}
Solution :
Public ActionResult MyTestAction(string submit) //submit will have value
either "MySave" or "MyEdit"
{
// Write code here
}
What are the differences between Partial View and Display Template and Edit
Templates in ASP.Net MVC?
Display Templates : These are model centric. Meaning it depends on the
properties of the view model used. It uses convention that will only display
like divs or labels.
Edit Templates : These are also model centric but will have editable
controls like Textboxes.
Partial View : These are view centric. These will differ from templates by
the way they render the properties Id′sId′s Eg : CategoryViewModel has
Product class property then it will be rendered as
Model.Product.ProductName but in case of templates if we
CategoryViewModel has List then
@Html.DisplayForm=>m.Productsm=>m.Products works and it renders the
template for each item of this list.
Can I set the unlimited length for "maxJsonLength" property in config?
No. We can't set unlimited length for property maxJsonLength. Default value is -
102400 and maximum value what we can set would be : 2147483644.
Yes. We can use the razor code in javascript in cshtml by using <text> element.