Learn MVC (Model view controller) Step by Step in 7 days – Day 1


In this article, I am going to explain steps to learn MVC. So, the agenda is simple we are going to learn ASP.NET MVC in 7 days. The way we will learn MVC in this series of article is by doing Labs, looking at detail steps of how to achieve those labs and also looking at demonstrative videos.

Learn MVC (Model view controller) Step by Step in 7 days – Day 1




Contents


So, what's the agenda?

So why MVC when ASP.Net behind code was so good?

Problem number 1:- UNIT Testing

Problem 2 :- The reality of separation of code and UI

Our HERO MVC (Model, view and controller)

Pre-requisite for MVC

Lab1:- Creating a simple hello world ASP.NET MVC Application

Video demonstration for Lab 1

Step1:- Create project

Step 2:- Add controller

Step 3:- Add View

Step 4:- Run the application

So what's in the next Lab?

Lab2:- Passing data between controllers and views

Video demonstration for Lab 2

Step1:- Create project and set view data

Step 2:- Display view data in the view.

So what's in the next Lab?

Lab 3:- Creating a simple model using MVC

Video demonstration for Lab 3

Step1:- Create a simple class file

Step2:- Define the controller with action

Step3:- Create strongly typed view using the class

Step 4 :- Run your application

So what's in the next Lab?

Lab 4:- Creating simple MVC data entry screen

Video demonstration for Lab 4

Step1:- Creating your data entry ASPX page

Step2:- Creating the controller

Step3:- Create the view to display the customer object

Step 4:- Finally run the project

So what's in the next Lab?

Lab 5:- using HTML helper to create views faster

Step 1:- Create the Customer class

Step2:- Creating the input HTML form using helper classes

Step 3:- Create a strong typed view by using the customer class

Step4:- Creating the controller class.

What's for the second day?


So, what's the agenda?



As the article name says learn MVC, so the agenda is simple we are going to
learn ASP.NET MVC in 7 days.

The way we will learn MVC in this series of article is by doing Labs, looking at
detail steps of how to achieve those labs and also looking at demonstrative
videos.

1
This complete article is divided in to 7 days with 42 hands on labs and every day we will
do 6 labs which will help us achieve our goals.

So get ready for day 1. In day 1 below is our agenda we will start with introduction, do a simple
hello world and finally in the 6th lab we will create a simple customer data entry screen using HTML helper classes.

Lab No. Lab description Youtube Video demonstration for the same
1 Introduction Why MVC? NA.
2 A simple Hello world ASP.NET MVC application. http://youtu.be/KAKxm4eQP24?hd=1
3 In this Lab we will see how we can share data between controller and the view using view data. http://youtu.be/Fu9v2MIDlTA?hd=1
4 In this lab we will create a simple customer model, flourish the same with some data and display the same in a view. http://youtu.be/0-UdqWy9lVc?hd=1
5In this lab we will create a simple customer data entry screen with some validation on the view. http://youtu.be/1dlxtHuRw34?hd=1
6 This Lab will demonstrate how to expedite your MVC development process using HTML helper classes. Pending…


You can watch my .NET
interview questions and answers
videos on various sections like WCF, Silver
light, LINQ, WPF, Design patterns, Entity framework etc

So why MVC when ASP.Net behind code was so good?


I am sure all ASP.NET love the behind code concept. Accepting something new
like MVC will not convince them. So let's analyze the problems with the current
behind code stuff.

When we generally talk about ASP.NET application built on tiered architecture
they are divided in four parts UI (ASPX pages), behind code (ASPX.CS pages),
Middle tier (.NET classes) and finally Data layer.

If you see from the aspect of code distribution major code which has logic is in
the middle tier or in the behind code (APX.CS files). The UI or ASPX files are
HTML files which is more of UI design and data access logic are pretty much
standard components like enterprise data blocks, entity data contexts etc.


2




Let's try to analyze the problems.


Problem number 1:- UNIT Testing


From the aspect of unit testing we can exclude the data logic and the UI
HTML. The data logic classes are already time tested components like enterprise
data block, entity data context or LINQ data context. So we really do not have
to put lot of effort on testing the DAL separately. In case you have custom data
access layer it will be still easy to test them as they are simple .NET classes.

There is no logic in testing on ASPX HTML as such it's more of look and feel.

The middle tier is again a simple .NET class like data logic so you can easily
do unit testing using VSTS or NUNIT.

Now comes the most important one the behind code. The behind code has lot of
action and testing them is one of the most important things. The only way to
invoke these codes are by doing manual test. From a longer run perspective this
would not be a great choice.

Even though www.microsoft.com
always boasted about how the ASP.NET behind code was separate from the UI, in
practical sense it's very difficult to decouple an ASP.NET behind code and do
unit testing on them.

The ASP.NET behind code is completely tied up with ASP.NET Httpcontext object
which makes unit testing very difficult.

Just think how do I unit test the below behind ASP.NET code. How do I create a
Http context object , how do I simulate the sender and eventargs objects of the
button clicks etc.

FYI: - Many developers would talk about mock test, rhino mocks etc but still its
cryptic and the complication increases with session variables, view data
objects, ASP.NET UI controls creating further confusion.


3


Problem 2 :- The reality of separation of code and UI


As said previously the ASPX and the ASPX.CS cannot be decoupled in reality
thus reducing reusability. Yes, Microsoft did said first that the behind code is
different and the UI is different but then they are probably separate physical
files only and one cannot just exist without other.

For instance let's say the same button click code when called via HTTP POST
should display using displayinvoice.aspx and when called via HTTP GET should
display in tree view. In other words we would like to reuse the behind code.
Just think how can we do the same using the current behind code.

4




Our HERO MVC (Model, view and controller)


That's where MVC comes to rescue. The behind code is moved to a simple .NET
class called as controller. Any user request first comes to the controller
class, the controller class then invokes the model and attaches the model to the
view for display to the end user.

5


As this controller class is a simple .NET class we can reuse and also do unit
testing easily. So let's see how we can create MVC application using MVC
template provided by visual studio.


Pre-requisite for MVC


Before we start the day lets ensure that you have all the ingredients to
create a MVC application.

• Visual Studio 2010 or the free Visual Web Developer 2010 Express. These
include ASP.NET MVC 2 template by default.

• Visual Studio 2008 SP1 (any edition) or the free Visual Web Developer 2008
Express with SP1. These do not include ASP.NET MVC 2 by default; you must also
download and install ASP.NET MVC 2 from
http://www.asp.net/mvc/
.

So once you have all your pre-requisite its time to start with the first lab.



Lab1:- Creating a simple hello world ASP.NET MVC Application


In this lab we will create a simple hello world program using MVC template.
So we will create a simple controller, attach the controller to simple
index.aspx page and view the display on the browser.


Video demonstration for Lab 1


In case you want spend more time with your family rather than reading the
complete article you can watch the below 5 minute youtube video.



v1





Step1:- Create project


Create a new project by selecting the MVC 2 empty web application template as
shown in the below figure.

6




Once you click ok, you have a readymade structure with appropriate folders where
you can add controllers, models and views.


7


Step 2:- Add controller


So let's go and add a new controller as shown in the below figure.

8


Once you add the new controller you should see some kind of code snippet as
shown in the below snippet.


public class Default1Controller : Controller
{
//
// GET: /Default1/
public ActionResult Index()
{
return View();
}
}

Step 3:- Add View


Now that we have the controller we need to go and add the view. So click on
the Index function which is present in the control and click on add view menu as
shown in the below figure.

9


The add view pops up a modal box to enter view name which will be invoked
when this controller is called as shown in the figure below. For now keep the
view name same as the controller name and also uncheck the master page check
box.


10


Once you click on the ok button of the view, you should see a simple ASPX
page with the below HTML code snippet. In the below HTML code snippet I have
added “This is my first MVC application".



<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Index</title>
</head>
<body>
<div>
This is my first MVC application
</div>
</body>
</html>

Step 4:- Run the application


If you do a CNTRL + F5 you should see a error as shown in the below figure.
This error is obvious because we have not invoked the appropriate controller /
action.


11


If you append the proper controller on the URL you should be able to see the
proper view.


12



So what's in the next Lab?


Now that we have created a simple MVC hello world, it's time to see how we
can pass data from controllers to views. The first hit comes to the controller
which will load your business objects or model and you would like to transfer
these objects to the view to display them.


Lab2:- Passing
data between controllers and views


The controller gets the first hit and loads the model. Most of the time we
would like to pass the model to the view for display purpose.

As an ASP.NET developer your choice would be to use session variables, view
state or some other ASP.NET session management object.

The problem with using ASP.NET session or view state object is the scope.
ASP.NET session objects have session scope and view state has page scope. For
MVC we would like to see scope limited to controller and the view. In other
words we would like to maintain data when the hit comes to controller and
reaches the view and after that the scope of the data should expire.

That's where the new session management technique has been introduced in ASP.NET
MVC framework i.e. ViewData.


13




Video demonstration for Lab 2


Below is a simple youtube video which demonstrates the lab for view data. In
this video we will see how we can share data between controller and the view
using view data. So we will create a simple controller, record the current data
in a view data variable and then display the same in the view using the
percentage tag.





v2







Step1:- Create project and set view data


So the first step is to create a project and a controller. In the controller
set the viewdata variable as shown in the below code snippet and kick of the
view.



public class DisplayTimeController : Controller
{
//
// GET: /DisplayTime/

public ActionResult Index()
{
ViewData["CurrentTime"] = DateTime.Now.ToString();
return View();
}

}



Step 2:- Display view data in the view.




The next thing is to display data in the view by using the percentage tag. One
important point to note is the view does not have a behind code. So to display
the view we need to use the <%: tag in the aspx page as shown in the below code
snippet.


<body>
<div>
<%: ViewData["CurrentTime"] %>
</div>
</body>



So what's in the next Lab?


So now that we know how to pass data using view data, the next lab is to
create a simple model and see all the 3 MVC entities (i.e. model, view and
controller) in action.


Lab 3:- Creating a simple model using MVC


In this lab we will create a simple customer model, flourish the same with
some data and display the same in a view.


Video demonstration for Lab 3


Below is a video demonstration for the same.


v3



Step1:- Create a simple class file


The first step is to create a simple customer model which is nothing but a
class with 3 properties code, name and amount. Create a simple MVC project,
right click on the model folder and click on add new item as shown in the below
figure.

14


From the templates select a simple class and name it as customer.


15


Create the class with 3 properties as shown in the below the code snippet.


public class Customer
{
private string _Code;
private string _Name;
private double _Amount;

public string Code
{
set
{
_Code = value;
}
get
{
return _Code;
}
}

public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}

public double Amount
{
set
{
_Amount = value;
}
get
{
return _Amount;
}
}
}



Step2:- Define the controller with action


The next step is to add the controller and create a simple action display
customer as shown in the below code snippet. Import the model namespace in the
controller class. In the action we created the object of the customer class,
flourished with some data and passed the same to a view named as “DisplayCustomer"


public class CustomerController : Controller
{
…..
….
public ViewResult DisplayCustomer()
{
Customer objCustomer = new Customer();
objCustomer.Id = 12;
objCustomer.CustomerCode = "1001";
objCustomer.Amount = 90.34;

return View("DisplayCustomer",objCustomer);
}
}



Step3:- Create strongly typed view using the class




We need to now join the points of MVC by creating views. So right click on the
view folder and click add view. You should see a drop down as shown in the below
figure. Give a view name, check create a strongly typed view and bind this view
to the customer class using the dropdown as shown in the below figure.

16


The advantage of creating a strong typed view is you can now get the
properties of class in the view by typing the model and “." as shown in the
below figure.


17


Below is the view code which displays the customer property value. We have
also put an if condition which displays the customer as privileged customer if
above 100 and normal customer if below 100.



<body>
<div>
The customer id is <%= Model.Id %> <br />

The customer Code is <%= Model.CustomerCode %> <br />

<% if (Model.Amount > 100) {%>
This is a priveleged customer
<% } else{ %>
This is a normal customer
<%} %>

</div>
</body>


Step 4 :- Run your application


Now the “D" thing, hit cntrl + f5 and pat yourself for one more lab success.

18


So what's in the next Lab?


In this sample we flourished the customer object from within the controller,
in the next lab we will take data from an input view and display the same. In
other words we will see how to create data entry screens for accepting data from
views.




Lab 4:- Creating simple MVC data entry screen




Every project small or big needs data entry screens. In this lab we will create
a simple customer data entry screen as shown in the below figure using MVC
template.

19


As soon as the end user enters details and submits data it redirects to a
screen as shown below. If he entered amount is less than 100 it displays normal
customer or else it displays privileged customer.

20


Video demonstration for Lab 4


Below is a simple video demonstration for this lab.



v4



Step1:- Creating your data entry ASPX page


The first step is to create the data entry page using the simple HTML form
action tag as shown in the below code snippet. The most important point to note
in the below code snippet is that the action is pointing to the controller
action i.e ‘DisplayCustomer'.


<form action="DisplayCustomer" method="post">
Enter customer id :- <input type="text" name="Id" /> <br />
Enter customer code :- <input type="text" name="CustomerCode" /><br />
Enter customer Amount :-<input type="text" name="Amount" /><br />
<input type="submit" value="Submit customer data" />
</form>


Step2:- Creating the controller




The above defined form action will post to the controller class and on the
function “DisplayCustomer". So we need to get the data from the HTML controls,
flourish the object and send the object to the view.


Below is the code snippet of displaycustomer which flourishes the customer
object by collecting data from request.form and sends the object to the view
‘displaycustomer.



public class CustomerController : Controller
{
…..
….
[HttpPost]
public ViewResult DisplayCustomer()
{
Customer objCustomer = new Customer();
objCustomer.Id = Convert.ToInt16(Request.Form["Id"].ToString());
objCustomer.CustomerCode = Request.Form["Id"].ToString();
objCustomer.Amount = Convert.ToDouble(Request.Form["Amount"].ToString()); ;
return View("DisplayCustomer", objCustomer);
}
}



Step3:- Create the view to display the customer object




The next step is to create the “DisplayCustomer" view.So right click on the view
folder and click add view. You should see a drop down as shown in the below
figure. Give a view name, check create a strongly typed view and bind this view
to the customer class using the dropdown as shown in the below figure.

21


The advantage of creating a strong typed view is you can now get the
properties of class in the view by typing the model and “." as shown in the
below figure.


22


Below is the view code which displays the customer property value. We have
also put an if condition which displays the customer as privileged customer if
above 100 and normal customer if below 100.


<body>
<div>
The customer id is <%= Model.Id %> <br />

The customer Code is <%= Model.CustomerCode %> <br />

<% if (Model.Amount > 100) {%>
This is a priveleged customer
<% } else{ %>
This is a normal customer
<%} %>

</div>
</body>

Step 4:- Finally run the project




Final step is to run the project and see the output.

23


You should be also able to test above 100 and below 100 scenarios

24



So what's in the next Lab?




In this lab we created a simple data entry screen which helped us flourish the
customer object. This customer object was then passed to the view for display.

If you closely watch the current lab we have done lot of coding i.e. creating
the HTML screens , flourishing the object etc. It would be great if there was
some kind of automation. In the next lab we see how HTML helper classes help to
minimize many of these manual coding and thus increasing productivity.


Lab 5:- using HTML helper to create views faster




In our previous lab we created a simple customer data entry screen. We completed
the lab successfully but with two big problems:-




• The complete HTML code was written manually. In other words, less productive.
It's like going back to dark ages where developers used to write HTML tags in
notepad.


<form action="DisplayCustomer" method="post">
Enter customer id :- <input type="text" name="Id" /> <br />
Enter customer code :- <input type="text" name="CustomerCode" /><br />
Enter customer Amount :-<input type="text" name="Amount" /><br />
<input type="submit" value="Submit customer data" />
</form>



• Added to it lot of manual code was also written in the controller to flourish
the object and send data to the MVC view.



public class CustomerController : Controller
{
…..
….
[HttpPost]
public ViewResult DisplayCustomer()
{
Customer objCustomer = new Customer();
objCustomer.Id = Convert.ToInt16(Request.Form["Id"].ToString());
objCustomer.CustomerCode = Request.Form["Id"].ToString();
objCustomer.Amount = Convert.ToDouble(Request.Form["Amount"].ToString()); ;
return View("DisplayCustomer", objCustomer);
}
}

In this lab we will see how to use MVC HTML helper classes to minimize the
above manual code and increase productivity




Step 1:- Create the Customer class


Create a simple customer class , please refer Lab 5 for the same.


Step2:- Creating the input HTML form using helper classes


HTML helper classes have readymade functions by which you can create HTML
controls with ease. Go to any MVC view and see the intellisense for HTML helper
class you should see something as shown in the below figure.

25


By using HTML helper class you can create any HTML control like textbox,
labels, list box etc just by invoking the appropriate function.

In order to create the form tag for HTML we need to use “Html.BeginForm" , below
goes the code snippet for the same.


<% using (Html.BeginForm("DisplayCustomer","Customer",FormMethod.Post)) 
{%>
-- HTML input fields will go here
<%} %>

The above code will generate the below HTML


<form action="DisplayCustomer" method="post">
…..
…..
</form>



The HTML helper “beginform" takes three input parameters action name (Method
inside the controller), controller name (actual controller name) and HTTP
posting methodology (Post or GET).


26

If you want to create a text box, simply use the “TextBox" function of html
helper class as shown in the below code. In this way you can create any HTML
controls using the HTML helper class functions.


Enter customer id :- <%= Html.TextBox("Id",Model)%> <br />



The above code snippet will generate the below HTML code.


Enter customer id :- <input type="text" name="Id" /> <br />

To create a data entry screen like the one shown below we need to the use the
below code snippet.

27


<% using (Html.BeginForm("DisplayCustomer","Customer",FormMethod.Post))
{ %>
Enter customer id :- <%= Html.TextBox("Id",Model)%> <br />
Enter customer code :- <%= Html.TextBox("CustomerCode",Model) %><br />
Enter customer Amount :- <%= Html.TextBox("Amount",Model) %><br />
<input type="submit" value="Submit customer data" />
<%} %>


Step 3:- Create a strong typed view by using the customer class




So once you have created the view using the HTML helper classes it's time to
attach the customer class with view , please refer lab 5 for the same.


Step4:- Creating the controller class.




The final thing is the controller code. The controller code now becomes very
simple. The customer object will be auto flourished as we have used the HTML
helper classes. You will create the controller class as we did in Lab 4 but we
do not need to write any kind of code for connecting the HTML screens with
controller, it's all hidden and automated.



[HttpPost]
public ActionResult DisplayCustomer(Customer obj)
{
return View(obj);
}

Enjoy your output for different condition of customer amount entered.



28




So have a toast of beer for completing your first day of MVC labs.


29



What's for the second day?


In the next labs we will talk about URL routing, ease of MVC unit testing,
MVC Controller attributes and lot more. The next lab will bit more advanced as
compared to the first day, so take rest and I need to work hard to get you the
second day labs.





Comments

Author: Arivazhagan Sekar19 Jun 2011 Member Level: Gold   Points : 0

Thanks for sharing a much valuable thing...

Author: Neeraj Kumar SIngh20 Jun 2011 Member Level: Silver   Points : 0

Thanks for this useful information.
Now waiting for day 2.............

Author: rajesh kumar parbat25 Jun 2011 Member Level: Gold   Points : 1

Hi,

MVC is the need of everyone. And you like member shared a very nice recource with us . Realy this is great. Are planning to bring a new book on MVC 3 ??

Author: Dharmaraj Nagarajan29 Jun 2011 Member Level: Gold   Points : 1

Hi All,
He is the famous author for BpB publications. It's pleasure have such great personalities with DNS.

Author: Himanshu Patel07 Jul 2011 Member Level: Gold   Points : 0

Outstanding atricle.
I have never seen such a article.

Author: Vijayalakshmi G M11 Oct 2011 Member Level: Gold   Points : 0

Hi,

Nice Article thanks for sharing the same.

Author: Sharad Sharma28 Oct 2011 Member Level: Gold   Points : 1

Thanks for a nice article/lab

This would prepare a base for those (including me!) who are willing to write/re-write their plain web application with MVC.

I have heard that Observer Pattern is used in MVC architectural pattern for automatic notifications to views/subscribers. Would be great if you could provide some information regarding use of observer Pattern in MVC.

Author: satyajee srivastava21 Nov 2011 Member Level: Silver   Points : 0

Thanks Dear,
Giving Constant Support Regarding MVC -Model-View Controller Step By step to DNS Memebrs This really Help Us for Better Understanding Of Concepts.

Guest Author: Arunkumar18 Dec 2011

Where is Day 2 article?

Guest Author: Swapnil20 Dec 2011

this is really I am very intrested in asp.net mvc !!!

Guest Author: saditya25 Dec 2011

Please share link for day 2. sadityak2@gmail.com

Author: Atul Sharma17 Jan 2012 Member Level: Silver   Points : 0

this is really beneficially to everyone mainly freshers or beginners

Guest Author: Mahesh24 Jan 2012

Thanks for your most valuable information regarding asp.net mvc and we are waiting for second day labs...

Author: NareshGodera20 Feb 2012 Member Level: Silver   Points : 0

hi,

Where is Day 2 article?


Thanks in advance..

Author: sree22 Feb 2012 Member Level: Silver   Points : 1

Hi Shivprasad Koirala,

I read your asp.net interview questions pdf material, it was awesome.

really very happy to see posts from you on MVC too...Thanks a lot sir.

can i get the remaining labs info please....
Thanks in advance.

Guest Author: Prachi Kulkarni18 Apr 2012

Hi,
It is to the point and extremely useful article.
Thanks for sharing.
Also I would like to ask one question i.e. if anyone wants to do career in principle architecture side then how he/she should groom himself/herself to enhance existing skills?

Author: Dhiraj28 Apr 2012 Member Level: Silver   Points : 0

Hello Mr Shiv Prasad,

This is great article and it is very help full to me as well as to them who are new to MVC..

But can you please tell me how can see the article of other days...?

Guest Author: Bintang02 May 2012

hi,Thank for your post! Excellent!!But Could you put it to download in High Definition, becuase it can't be seen so clearly in order to understand or if you send me the souce code too.Regards,Angel Santomas

Guest Author: 20 Jun 2012

i ask somthing to you

Guest Author: 20 Jun 2012

Web application stopped behaving normally after migration from Dedicated servers to Ec2 servers
Old Dedicated Server configuration

systemtype: 32 bit operating system.
RAM: 3.99 Gb Ram
Processer : 1.86 GHZ

New Servers in EC2

systemtype: 64 bit operating system.
RAM: 3.99 Gb Ram
Processer : 2.73 GHZ - 2.31 GHZ

Everthing is working fine in our production server.
But as we migrated our web application from old servers to new servers and transferred the entire network traffice to new servers.Site suddenly stopped behaving abnormally.
Sometimes it's super fast
Some times slow.
sometimes normal
some times super slow
and sometimes no response
This all above happens with a time interval or around 2 - 3 minutes.
This went on happening 8 - 10 hours.
Few differences in old and new servers are
Old servers are using II6 and New servers are using IIS 7.5.
We are using exactly the same code in the old and new servers.
Even the ec2 servers are having higher CPU then older servers but still having lower.
But not sure how this is happned.
Please suggets your views...

Author: muthuraman13 Jul 2012 Member Level: Silver   Points : 3

Everthing is working fine in our production server.
But as we migrated our web application from old servers to new servers and transferred the entire network traffice to new servers.Site suddenly stopped behaving abnormally.
Sometimes it's super fast
Some times slow.
sometimes normal
some times super slow
and sometimes no response
This all above happens with a time interval or around 2 - 3 minutes.
This went on happening 8 - 10 hours.
Few differences in old and new servers are
Old servers are using II6 and New servers are using IIS 7.5.
We are using exactly the same code in the old and new servers.
Even the ec2 servers are having higher CPU then older servers but still having lower.
But not sure how this is happned.
Please suggets your views...

Author: Sreedevi U.V28 Sep 2012 Member Level: Gold   Points : 0

I was looking for a good and simple Tutorial on ASP.Net MVC. Thank you for this nice article

Guest Author: Chayan Upadhyay17 Dec 2012

public class CustomerController : Controller
{….
.….
public ViewResult DisplayCustomer()
{
Customer objCustomer = new Customer();
objCustomer.Id = 12;
objCustomer.CustomerCode = "1001";
objCustomer.Amount = 90.34;
return View("DisplayCustomer",objCustomer);
}
}
what is Id CustomerCode??
i m getting erroe for Id and CustomerCode?

Guest Author: Chayan Upadhyay17 Dec 2012

can u put any option for download the source code of ur labs..
so i can check from ur code if there will be any error?

Guest Author: Jawahar04 Feb 2013

Hello.. where is the Second day article...... otherwise change the title of u r article

Guest Author: santosh kumar yadav27 Apr 2013

very fine post

Guest Author: 28 Apr 2013

As a specialist for diesel injection spare parts, We, China CG Diesel Parts (http://www.fuelinjection-parts.com), are specialized in the export of our own products, all kinds of precision parts for replacement of Zexel, Bosch, Denso, Cat, Delphi, Seven, Doowon etc. like injector nozzles, pump elements, delivery valves, feed pumps, head rotors etc. to all oversea markets. We're one of the key enterprises in Fujian province and our factory covers 100,000 square meters.

We are powerful in product design and development, and there are several production lines for diesel nozzle, diesel plunger, head rotor, delivery valve, repair kit, cam disk, drive shaft, magnet valve, conmins, pencil nozzle, common rail system, feed pump, blade, nozzle tester, test bench, etc. Nearly ten thousand kinds of products with leading level in the same field. We've got TS16949, ISO-9001:2000 certification and reached the international export standard.

With nearest 20 years of expanding business in the Diesel fuel injection field, We have gained an intimate experience and knowledge of local conditions and special requirements of the markets in Europe, Middle East, South Africa, America etc..

More detail, pls contact with emily, email is emily@fuelinjection-parts.com.

Guest Author: kailas Patil02 May 2013

Thanks

Guest Author: Luan19 Sep 2013

I like the valuable info you provide in your articles.I'll bookmark your blog and check again here frequently. I am quite certain I will learn a lot of new stuff right here! Best of luck for the next!Stop by my web blog ...

Author: Anil kushawaha03 May 2014 Member Level: Silver   Points : 0

Than you for nice information.

Author: Rajesh B22 Aug 2014 Member Level: Silver   Points : 0

Hi Shivprasad Koirala,
Really very happy to see this article in our forum on MVC .Thanks a lot sir and thanks to webmaster ajeesh helped me to get this article. waiting for the such a article.

Author: sadiq25 Apr 2015 Member Level: Silver   Points : 0

Excellent.and thank you for sharing this valueble information.



  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name:
    Email: