Wednesday, October 10, 2012

populate a DropDownList in ASP.Net MVC2 from wcf client service

First we see how to pull data from wcf client into our mvc, (here i am not giving the example of how to create wcf and publish the service, i hope you are already familier with that process)

we create an interface that will consume the wcf client.
 public interface IClientService
 List GetProducETGProducts();

public class ClientService : BaseModel, IClientService
        private readonly ICustomerService _provider;

        public ClientService()
            : this(null)


        public ClientService(CustomerServiceClient provider)
            _provider = provider ?? new CustomerServiceClient();
// this service client is WCF service client.


// finally database / wcf call done here.

 public List GetProducETGProducts()
            List custs = null;
            tbProductMaster[] custArry = _provider.GetProductMaster();

            custs = custArry.ToList();

            return custs;


Now we create a controller class that will fetch data from client service we have just create in above example

    public class ClientController : Controller

// this interface has all defination    
public IClientService ClientService { get; set; }

        protected override void Initialize(RequestContext requestContext)
             if (ClientService == null) { ClientService = new ClientService(); }


// here now we load data into model from our data access layer, in this example we are using a WCF service to pull data from data source, so i am not putting to code of wcf call, you can use any data access to pull data from datasource

public ActionResult ManageClients()
            ViewData["Message"] = "Manage Clients!";

            var model = new ClientViewModel();
            model.ProductMaster = ClientService.GetProducETGProducts();

            return View(model);

Lets take a look at how the model will look like, we have already used in above ManageClients() method, and this same model we will be using to create a view (.aspx / .ascx ) pages

public class ClientViewModel : BaseModel
        public  List< tbContact> Clients { get; set; }
        public List< tbProductMaster> ProductMaster { get; set; }


Finally, now this is how your html .aspx page page will look like

<% @ Page Title="Manage Clients" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
    Inherits="System.Web.Mvc.ViewPage"  %>

< asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

 <%: Html.DropDownList("ProductMaster", new SelectList(Model.ProductMaster, "ProductId", "Product")) %>
</ asp:Content>

You are done! simply run the page, you should be able to see the dropdown list, make sure you have set the property name properly.

No comments:

ETG Consultancy

Web Designing Development Analysis & Promotion
Asp.Net 2.0 SQL WWF WCF SEO Marketing Ajax JQuery NHibernate MVC