26 July 2014

Restrict MVC actions to be invoked only by GET or POST

Restrict MVC actions to be invoked only by GET or POST

We can decorate the MVC action with the HttpGet or HttpPost attribute to restrict the type of HTTP calls. For instance you can see in the below code snippet the DisplayCustomer action can only be invoked by HttpGet. If we try to make HTTP POST on DisplayCustomer, it will throw an error.


[HttpGet]
public ViewResult DisplayCustomer(int id)
{
    Customer objCustomer = Customers[id];
    return View("DisplayCustomer",objCustomer);
}


Routing in MVC

Routing in MVC

Routing helps you to define a URL structure and map the URL with the controller.

The route mapping code is written in the “global.asax” file.

For Example

routes.MapRoute(
               "View", // Route name
               "View/ViewCustomer/{id}", // URL with parameters
               new { controller = "Customer", action = "DisplayCustomer",

id = UrlParameter.Optional }); // Parameter defaults

When a user types “http://localhost/View/ViewCustomer/”, it goes to the “Customer” Controller and invokes the DisplayCustomer action. This is defined by adding an entry in to the routes collection using the maproute function. Below is the underlined code which shows how the URL structure and mapping with controller and action is defined.

Note:
We can map multiple URL'S to the same action.
Add two entries with different key names and specify the same controller and action.





Difference between HTML.TextBox vs HTML.TextBoxFor

Difference between HTML.TextBox vs HTML.TextBoxFor

Both of them provide the same HTML output, “HTML.TextBoxFor” is strongly typed while “HTML.TextBox” is not strongly typed

Html.TextBox("Name")

Below is “Html.TextBoxFor” code which creates HTML textbox using the property name ‘Name” from object “m”.


HTML helpers in MVC

HTML helpers in MVC

MVC includes standard helpers for the most common types of HTML elements.

HTML helpers are more lightweight. Unlike Web Form controls, an HTML helper does not have an event model and a view state

For example 

@Html.ActionLink("About this Website", "About")

The Html.ActionLink() helper above, outputs the following HTML:

< a href="/Home/About" > About this Website< / a >

MVC 3 and MVC 4 New Features

MVC 3 and MVC 4 New Features

MVC 3 New Features

1.New View engine Razor is introduced.
2.Readymade Project templates
3.HTML 5 Enabled Templates
4.Support for multiple view engines, Javascript and Ajax

5.Model Validation Improvements

MVC 4 New Features
1.Asp.net Web Api [application programming interface] is introduced
2.Many new features to support mobile apps
3.Enhanced support for asynchronous methods

4.Refreshed and modernized default project templates New mobile project templates.



MVC ,MVVM and MVP in Dotnet

MVC ,MVVM and MVP in Dotnet

Model View Controller - [MVC] architecture is suitable for web application.
Model View View Model - [MVVM] -  suitable for WPF and Silverlight.
MVP -  [Model View Presenter] suitable for Window application.


1 June 2014

What is KnockoutJS

What is KnockoutJS

Knockout is a standalone JavaScript implementation of the Model-View-ViewModel pattern with templates. The underlying principles are therefore:

A clear separation between domain data, view components and data to be displayed the presence of a clearly defined layer of specialized code to manage the relationships between the view components.

The latter leverages the native event management features of the JavaScript language.

These features streamline and simplify the specification of complex relationships between view components, which in turn make the display more responsive and the user experience richer.

Knockout was developed and is maintained by Steve Sanderson, a Microsoft employee. The author stresses that this is a personal open-source project, and not a Microsoft product

Knockout includes the following features:

Automatic UI refresh (when the data model's state changes, the UI updates automatically)
Dependency tracking
Templating (using a native template engine although other templating engines can be used, such as jquery.tmpl)

Example:

http://learn.knockoutjs.com/#/?tutorial=intro

Implementing OAuth validation in a Web API

 I mplementing OAuth validation in a Web API Implementing OAuth validation in a Web API using C# typically involves several key steps to sec...