Saturday, 6 August 2016

Usual Methods to transfer data from Page To Page in ASP.NET MVC

Preamble: In ASP.NET ( like in PHP and other Web frameworks) there are 2 clear entities: Server ( code on the WebServer ) and Client( the HTML interpreted by the browser and javascript). Server and Client shares same cookies – means Client and Client both can read and write cookies. Transfer from the Client to Server happens when a) you click a link : the information to transfer is query string . That means, http://…/a?x=y&a=b will send information y ( associated to key x) and b( associated to key a). This is called a GET b) you press a submit button to send a FORM : the information is values of select and input. This is called a POST. c) you send information via javascript ( including AJAX) . Usually this can involve a PUT, a GET, or other ( see REST ). d) Creating/Modifying and send cookies. The sending happens automatically by the browser . Transfer from the Server to Client a)sending text(HTML)/binary data. . The interpretation is done by the browser( how to display html, how to display send file …) b) Creating/Modifying and send cookies . Browser will do automatically this. ASP.NET WebForms way: For ASP.NET Webforms the modalities to transfer are detailed by Peter Bromberg , http://www.eggheadcafe.com/tutorials/asp-net/e653f028-01fb-4d0e-843b-058deae562a2/eight-different-ways-to-transfer-data-from-one-page-to-another-page.aspx . ASP.NET MVC way: I want to discuss from ASP.NET MVC perspective. In MVC we have 2 distinct objects: VIEW and ACTION. Both happens to run on the Server . The ACTION can return a VIEW or ( or a redirect to) another ACTION or simply a FILE The VIEW processes a Model ( and a ViewBag/ViewData) and sends the text( HTML) data to the Client . Instead of PAGES , we will discuss of VIEWS – because the VIEWS sends HTML data to the Client. So, to transfer data between View1 to View2 in MVC is reduced to this: a) Page1 transfer data to the server ACTION1( by a,b,c,d methods in the Preamble ) b) The Action receives the values as his parameters ( by binding) and can do this: b1) Return a different View ( using some logic : if( a ) return View1(Model1); else return View2(Model1); b2) Returning a Redirect to ACTION2 ( that return View2) or simply return the result of this action return RedirectToAction(Action2()); //Used in Post/Request/GET, http://en.wikipedia.org/wiki/Post/Redirect/Get return Action2(); Resuming: Transfer betweem PAGE to PAGE in ASP.NET MVC is really transfering from ACTION to ACTION , besides the cookie that can be transferred directly by the browser. 9 Modalities to transfer data from Page to Page in ASP.NET MVC Enough theory, let’s do some code. We have a Model to transfer named ModelTransfer ? 1 2 3 4 5 6 7 public class ModelTransfer { public int Age { get; set; } public string Name { get; set; } } We have the first View1( Index) and a second View2(Transfer) that will server as an example. Also, we will have the more ACTIONS – one for each example of transfer – all are using the TRANSFER action as an ultimate resort do see the View. Method1 : Transfer directly to the second View/Action . ? 1 click me ? 1 public ActionResult Transfer(ModelTransfer m) Method2 Index sends POST data to a [HttpPost] Index action, that performs some calculations and return a redirect.Usefull in PRG ? 1 2 3 4 5 @using (Html.BeginForm()) { } ? 01 02 03 04 05 06 07 08 09 10 [HttpPost] public ActionResult Index(ModelTransfer m) { //save to the database the data //this is for transferring alert data - such an "Completed saving" message to the user TempData["displayalert"] = " this is from Index POST action!"; //used in PRG return RedirectToAction("Transfer", new ModelTransfer() { Age = m.Age, Name = m.Name }); } Method3: No data send. The ServerAction just make some data to be transferred to the Transfer view, by TempData ? 1 click me ? 1 2 3 4 5 6 7 8 public ActionResult ServerAction() { //You can put also into the Session / Application /Cache depending on your specifications TempData["MyModel"]=new ModelTransfer(){ Age = 42, Name = "Andrei Ignat"}; TempData["displayalert"] = "this is from Server action!"; return RedirectToAction("Transfer"); } Method4: No data send. The ServerAction just make some data to be transferred to the Transfer view, by Cache Method5: No data send. The ServerAction just make some data to be transferred to the Transfer view, by Session Method6: No data send. The ServerAction just make some data to be transferred to the Transfer view, by Application Method7: No data send. The ServerAction just make some data to be transferred to the Transfer view, by HttpContext Items Method8: By Cookies ? 1 click me ? 1 2 3 4 5 6 HttpCookie cook = new HttpCookie("Transfer"); //usually you put here more , but now I do not want to interfere with other methods cook.Expires = DateTime.Now.AddSeconds(1); cook.Value = "from transfer cookies"; Response.Cookies.Add(cook); return RedirectToAction("Transfer"); Method9: By Javascript /Ajax. It is an entire post by itself and you can see here: http://msprogrammer.serviciipeweb.ro/2011/12/05/jquery-ajax-request-and-mvcdetailed/ Summary In this post you have seen 9 methods to transfer data in MVC. As a bonus, the page dispolays also a message with Javascript( usefull for messaging like “Data Saved to database” messages to the user. The code source you will find here: Transfer Data Page to Page It is made with Razor and MVC3 – but you can replace Razor with aspx and MVC3 with MVC2 also. If you think I can improve this post, please leave some comment. Notes: I used here hard coding values. Please learn about T4MVC and Html.EditorFor ! To learn more about ASP.NET MVC visit http://asp.net/mvc. Default TempDataProvider is based on Session. There is one more , based on cookies. Please do the exercises to gain self knowledge about MVC by: http://msprogrammer.serviciipeweb.ro/2012/01/15/usual-methods-to-transfer-data-from-page-to-page-in-asp-net-mvc/

Thursday, 14 July 2016



Bottom of Form
MVC ASP.Net Interview Questions And Answers


1. Which is the best approach to assign a session in MVC?
A) System.Web.HttpContext.Current.Session["LoginID"] =7;
B) Current.Session["LoginID"] =7;
C) Session["LoginID"] =7;
D) None
2. RedirectToActionPermanent() Method for which Status code represents?
A) 304
B) 302
C) 301
D) 300
E) None
3. RedirectToAction() Method for which Status code represents?
A) 304
B) 302
C) 301
D) 300
E) None

4. What is ActionResult() ?
A) It is an abstract Class
B) It is a Concrete Class
C) Both A and B
D) None
5. What is ViewResult() ?
A) It is an abstract Class
B) It is a Concrete Class
C) Both A and B
D) None


6. return View() works like in ASP.Net MVC C# as
A) Server.Transfer()
B) Response.Redirect()
C) Both A and B
D) None
7. RedirectToAction() works like in ASP.Net MVC C# as
A) Server.Transfer()
B) Response.Redirect()
C) Both A and B
D) None
8. In which format data can be return from XML into table ?
A) DataSet
B) Datatable
C) A and B
D) None
9. Can we use view state in MVC ?
A) Yes
B) No
C) Both A & B
D) None
10. What Request Processing technique follows ASP.Net ?
A) Top-Down
B) Down-Up
C) Pipeline
D) Water fall
11. What is DRY principle in ASP.Net ?
A) Don't repeat yourself.
B) Don't revise yourself.
C) both a and b
D) None
12.  What is default authentication in Internet Information Services (IIS)?
A) Standard User
B) Administrator
C) Anonymous
D) None
13. What is the extension of MVC view when using C#?
A) cshtml
B) vbhtml
C) None
D) Both A & B


14. What is the extension of MVC view when using vb.net?
A) cshtml
B) vbhtml
C) None
D) Both A & B
15. How can you comment using Razor Syntax?
A) *@ Comment me *@
B) @* Comment me *@
C) @* Comment me @*
D) *@ Comment me @*
E) None
16. Which Namespace is used for Razor View Engine ?
A) System.Web.Razor
B) System.Web.Mvc.WebFormViewEngine
C) Both A & B
D) None
17. Which Namespace is used for ASPX View Engine ?
A) System.Web.Razor
B) System.Web.Mvc.WebFormViewEngine
C) Both A & B
D) None

18. The Razor View Engine uses to render server side content.
A) @
B) <%= %>
C) Both A & B
D) None
19. The ASPX View Engine uses to render server side content.
A) @
B) <%= %>
C) Both A & B
D) None
20. Which is more faster between ASPX View Engine and Razor View Engine.
A) ASPX View Engine
B) Razor View Engine
C) Both A & B
D) None

21. Does Razor Engine supports for TDD ?
A) Yes
B) No
C) None
22. Does ASPX View Engine supports for TDD ?
A) Yes
B) No
C) None

22. How to Print value from Controller to View in MVC ?
A) ViewBag.ECMDetail = "my message"; and in view @ViewBag.ECMDetail
B) ViewBag.ECMDetail = "my message"; and in view ViewBag.ECMDetail
B) ViewBag.ECMDetail = "my message"; and in view ViewBag.Title
D) None

23. If you have already implemented different filters then what will be order of these filters?
1) Authorization filters
2) Action filters
3) Response filters
4) Exception filters
24.  Can you specify different types of filters in ASP.Net MVC application?
1) Authorization filters (IAuthorizationFilter)
2) Action filters   (IActionFilter)
3) Result filters (IResultFilter)
4) Exception filters (IExceptionFilter)

25. What are the advantages of using ASP.NET routing?
Answer: Clean URLs is originally brought from Ruby on Rails. http://www.technologycrowds.com?abc=10 , now clean URL in MVC ASP.Net will be work like http://www.technologycrowds.com/abc/10
26. What is the significance of ASP.NET routing?
Answer: Default Route Name:
"{controller}/{action}/{id}", // URL with parameters
By default routing is defined under Global.asax file. MVC ASP.Net uses routing to map between incoming browser request to controller action methods.
27. Can be it possible to share single view across multiple controllers in MVC?
Answer: We can put the view under shared folder, it will automatically view the across the multiple controllers.

28. Are MVC and Web API merged into one in MVC 6?
A) Yes
B) No
C) Both A & B
D) None


29. Does MVC 6 introduced new JSON project based structure?
A) Yes
B) No
C) Both A & B
D) None

30. Does MVC 6 allow only save change, hitting the save but then refreshing the browser to reflect changes?
A) Yes
B) No
C) Both A & B
D) None

31. Does vNext is now Open Sourced via the .NET Foundation and open to public contributions.
A) Yes
B) No
C) Both A & B
D) None

32. Can vNext runs on both Mac and Linux today (Mono Version)?
A) Yes
B) No
C) Both A & B
D) None

33. What is the difference between MVC (Model View Controller) and MVP (Model View Presenter)?
Answer: MVC controller handles all the requests, MVP handles as the handler and also handles the all requests as well.

34. How does work Viewstart in MVC (ASP.Net)?
A) Viestart is used to layout of the application.
B) Viewstart is used like Masterpage in traditional forms (ASP.Net pages).
C) Viewstart render first in the views.
D) A, B and C.
E) None

Viewstart Code Snippet
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

35. Viewstart comes under which folder name ?
A) Views
B) Account
C) Shared
D) Home


36. Does Viewstart override all Views layout/template under "Views" folder in MVC ?
A) Yes
B) No
C) Both A & B
D) None

37. What is the name of default Viewstart Page in ASP.Net MVC ?
A) _ViewStart.cshtml
B) _Layout.cshtml
C) _Login.cshtml
D) None

38. Can we use third party View Engine using ASP.Net MVC Engine ?
Yes, below are the top five alternative ASP.Net MVC View Engines.
1.       Spark (Castle MonoRail framework projects), Open Sourced, it is popular as MVCContrib library.
2.       NHaml works like inline page templating.
3.       NDjango uses F# Language.
4.       Hasic uses VB.Net, XML.
5.       Bellevue for ASP.NEt view, It respects HTML class first.
39. What is scaffolding using ASP.Net MVC Engine? 
Answer: Scaffolding helps us to write CRUD operations blend using Entity Framework, It helps developer to write down simply even yet complex business logic.
40. What is life cycle in ASP.Net MVC Engine?
Step 1: Fill Route (Global.asax file will hit first).
Step 2: Fetch Route: It will gether information about controller and action to invoke.
Step 3: Request context
Step 4:  Controller instance: it calls Controller class and method.
Step 5: Executing Action: It determines which action to be executed 
Step 6: Result (View): Now Action method executed and returns back response to view in differentiating forms like Json, View Result, File Result etc.
Description: Viewstart scaffolding MVC Engine Life Cycle
41. Which is the way to render Partial View using ASP.Net MVC Razor Engine?
A) @Html.Partial("_PartialHeader")
B) @Html.PartialView("_PartialHeader")
C) @Html.PartialHtml("_PartialHeader") 
D) B and C
E) None

42. Which  Namespace is used to "Display" in Data Annotation using MVC ?
A) System.ComponentModel
B) System.ComponentModel.DataAnnotations
C) Both A and B
D) None
43. Which  Namespaces are required to Data Annotation using MVC ?
A) System.ComponentModel
B) System.ComponentModel.DataAnnotations
C) Both A and B
D) None
Description: ViewData ViewBag Tempdata
44. Are both TempData/ViewData require typecasting in MVC?
A) Both (TempData/ViewData) requires type casting to avoid null exception.
B) No, these (TempData/ViewData) does not require type casting.
C) Both A) & B)
D) None

45. Is ViewBag slower than ViewData in MVC?
A) Yes
B) No
C) Both A) & B)
D) None

46. Is ViewData faster than ViewBag in MVC?
A) Yes
B) No
C) Both A) & B)
D) None

47. Are both TempData/ViewData property of Controller base class in MVC?
A) Yes
B) No
C) Both A) & B)
D) None

48. Does TempData used to pass data from one page to another page in MVC?
A) Yes
B) No
C) Both A) & B)
D) None
Description: ASP Net Web API Questions

49. Can ASP.Net Web API specialize to XML or JSON ?
A) Yes
B) No
C) None
50. Does Web API (ASP.Net) supports to non SOAP based like XML or JSON ?
A) Yes
B) No
C) None
51. Does Web API (ASP.Net) supports to both version mobile apps and others ?
A) Yes
B) No
C) Both A & B
D) None
52. Can ASP.Net Web API, it works HTTP standard verbs like POST, GET, PUT, DELETE (CRUD Operations) ?
A) Yes
B) No
C) Both A & B
D) None
53. Can ASP.Net Web API ability to both self hosting (outside of IIS) and IIS ?
A) Yes
B) No
C) None
54. Can ASP.Net Web API has ability to transport non HTTP protocols like TCP, UDP, Named Pipes etc ?
A) Yes
B) No
C) None

55. What is AuthConfig.cs in ASP.Net MVC ?
A) AuthConfig.cs is used to configure route settings
B) AuthConfig.cs is used to configure security settings including sites oAuth Login.
C) None
D) All

56. What is BundleConfig.cs in ASP.Net MVC ?
A) BundleConfig.cs in MVC is used to register filters for different purposes.
B) BundleConfig.cs in MVC is used to register bundles used by the bundling and minification, serveral bundles are added by default like jQuery, jQueryUI, jQuery  validation, Modernizr, default CSS references.
C) All
D) None

57. What is FilterConfig.cs in ASP.Net MVC ?
A) FilterConfig.cs is used to register global MVC filters, HandleErrorAttribute is registered by default filter. We can also register other filters.
B) FilterConfig.cs is used to register global MVC bundles.
C) None
D) All

58. What is  RouteConfig.cs in ASP.Net MVC?
A) RouteConfig.cs is used to register MVC config statements, route config.
B) RouteConfig.css is used to register global MVC bundles.
C) None
D) All

59. What is the difference between HtmlTextbox and HtmlTextboxFor using ASP.Net MVC Razor Engine?
A) @Html.TextBox is not strongly typed, @Html.TextBoxFor is strongly typed that is why should be use @Html.TextBoxFor in MVC Razor Engine.
B) @Html.TextBox is strongly typed, @Html.TextBoxFor is not strongly typed that is why should be use @Html.TextBox in MVC Razor Engine.
C) None
D) Both A and B

Syntax
@Html.Partial("_viewname"); 
60. What is the benefits of Html.RenderPartial using ASP.Net MVC Razor Engine?
A) @Html.RenderPartial Returns response, moreover requires to create action.
B) @Html.RenderPartial Returns nothing (void), it is faster than @Html.Partial, moreover requires not to create action.
C) None
D) Both A and B

Syntax

@Html.Partial("_viewname");
@Html.RenderPartial("_viewname");
61. What is the benefits of Html.Partial using ASP.Net MVC Razor Engine?
A) @Html.RenderPartial Returns response, moreover requires to create action.
B) @Html.RenderPartial Returns string value, it is slower than @Html.RenderPartial, moreover requires not to create action.
C) None
D) Both A and B

Syntax
@Html.Partial("_viewname");
62. How to check Request coming from which controller using MVC ASP.Net?
A) var _controller = HttpContext.Current.Request.RequestContext.Values["Controller"].ToString();
B) var _controller = HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"].ToString();
C) var _controller = RouteData.Values["Controller"].ToString();
D) None

63. For which ModelState.IsValid Validate ?
A) It checks for Entityframework Model state.
B) It checks for valid Model State using DataAnnotations.
C) It checks for SQL database state.
D) None
Description: Do Nut Charts
64. Which Name space is used to create chart using ASP.Net MVC?
A) using System.Web.MVC;
B) using System.Web.Helpers;
c) using System.Web.Chart;
D) All

65. How can we provide Height and Width to MVC Charts ?
A) new Chart(width - 600, height - 400)
B) new Chart(width = 600, height = 400)
C) new Chart(width: 600, height: 400)
D) All

Description: Funnel Chart
66. How can we set theme to MVC Charts?
A) new Chart(width: 600, height: 400, theme: ChartTheme.Vanilla3D)
B) new Chart(width: 600, height: 400, theme: ChartTheme = Vanilla3D)
C) new Chart(width: 600, height: 400, theme: Vanilla3D)
D) None

67. How can we give Title to MVC Charts?
A) var chart = AddTitle("My First Chart")
B) .AddTitle("My First Chart")
C) .AddTitle('My First Chart')
D) All

68. How can we add Series to MVC Charts?
A) .AddSeries(chartType: "Bar", xValue: xValue, yValues: yValue)
B) .AddSeries(chartType: "Bar", xValue = xValue, yValues = yValue)
C) .AddSeries(chartType: "Bar", xValue: xValue, yValues: yValue)
D) None

69. How can we add Chart Type to MVC Charts?
A) .NewSeries(chartType: "Bar")
B) .Series(chartType: "Bar")
C) .AddSeries(chartType: "Bar")
D) All

Description: Pyramid Chart
70. How can we write Chart output to MVC View?
A) .Write(bmp);
B) Write("bmp");
C) .Write("bmp");
D) All

71. How can we Show Chart output to MVC View?
Description: Chart Controls
Answer: C)

72. Which name space using can send email in ASP.Net MVC?
A) using System.Net.Mail;
B) using System.Net;
C) using System.Mail;
D) None

MailMessage mail = new MailMessage();
73. If Razor View Engine need to add JQuery function and contain @ special character then how we can write it in Razor View? 
A) Replace @ to @@@ (tripple)
B) Replace @ to @@ (double) 
C) None
D) Both (A & B)

74. How to set Default Value to Hidden Input Box using ASP.Net MVC? 
A) @Html.HiddenFor(m => m.Name, "Jack")
B) @Html.HiddenFor(m => m.Name, new { Value = "Jack"}) 
C) @Html.Hidden(m => m.Name, new { Value = "Jack"})
D) None

75. How to check all errors of Model using ASP.Net MVC?
A) var errors = Model.Values.SelectMany(v => v.Errors);
B) var errors = ModelState.SelectMany(v => v.Errors);
C) var errors = ModelState.Values.SelectMany(v => v.Errors);
D) None

76. AuthConfig.cs file is under in which App folder ? 
A) App_Data
B) App_Start
C) Content
D) Filters
Description: app_start
77. BundleConfig.cs file is under in which App folder ? 
A) App_Data
B) App_Start
C) Content
D) Filters

78. FilterConfig.cs file is under in which App folder ? 
A) App_Data
B) App_Start 
C) Content
D) Filters

79. RouteConfig.cs file is under in which App folder ?
A) App_Data
B) App_Start
C) Content
D) Filters

80. WebApiConfig.cs file is under in which App folder ?
A) App_Data
B) App_Start 
C) Content
D) Filters

81. Can you list the main types of result using ASP.Net MVC?
There are total 10 main types of result, ActionResult is main type and others are sub types of results as listed below:
·         System.Web.Mvc.ActionResult 
·         System.Web.Mvc.ContentResult 
·         System.Web.Mvc.EmptyResult 
·         System.Web.Mvc.FileResult 
·         System.Web.Mvc.HttpStatusCodeResult 
·         System.Web.Mvc.JavaScriptResult 
·         System.Web.Mvc.JsonResult 
·         System.Web.Mvc.RedirectResult 
·         System.Web.Mvc.RedirectToRouteResult 
·         System.Web.Mvc.ViewResultBase
82. Which filter will be execute at first using ASP.Net MVC?
A) Action filters
B) Authorization filters
C) Response filters
D) Exception filters

83. Which filter will be execute at last using ASP.Net MVC?
A) Action filters
B) Authorization filters
C) Exception filters
D) Response filters

84. What is the main purpose of HTML Helper of ActionLink in ASP.Net MVC? 
A) It links to specific controller
B) It links to specific Action 
C) It links to specific View
D) None

85. How to format Date in Razor View using ASP.Net MVC? 
A) @string.Format(Convert.ToDateTime(Html.DisplayFor(modelitem => item.Start_Date).ToString()))
B) @string.Format("{0:dd/MM/yyyy}", Convert.ToDateTime(Html.DisplayFor(modelitem => item.Start_Date).ToString())) 
C) Both A & B
D) None