Hiển thị các bài đăng có nhãn ASP.NET Ajax. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn ASP.NET Ajax. Hiển thị tất cả bài đăng

Thứ Hai, 2 tháng 3, 2009

ASP.NET Ajax : Cách Gọi ASP NET MVC Controller Actions

ASP.NET MVC cung cấp một framework để xây dựng các ứng dụng theo Model-View-Controller (MVC) pattern. Mô hình này đại diện cho dữ liệu sử dụng trong các ứng dụng, các Controller chịu trách nhiệm cho hành động đó xảy ra và View là đại diện cho giao diện người dùng mà người dùng cuối tương tác trong ứng dụng. The ASP.NET AJAX Thư viện có thể đóng một vai trò quan trọng trong các ứng dụng ASP.NET MVC khi một trang cần được Ajax bật. Hướng dẫn này sẽ thảo luận làm thế nào để trở về JSON (JavaScript Object Notation) kết quả từ một Controller Actions quá trình và trong vòng một trang view. Các bước thảo luận bao gồm:
  • Tạo một dự án ASP.NET MVC
  • Tạo một JsonResult Controller Action
  • Gọi một Controller Action và Kết quả Binding
Bước 1: Tạo một dự án ASP.NET MVC

ASP.NET MVC framework không được bao gồm trong Visual Studio 2008 theo mặc định, nhưng có thể được tải về và cài đặt từ http://www.asp.net/mvc. Visual Studio 2010 đi kèm với ASP.NET MVC ra khỏi hộp. Để tạo một ASP.NET mới MVC dự án chọn File | New Project và chọn ASP.NET MVC Web Application từ mẫu. Sau khi tạo dự án bạn sẽ thấy một số các thư mục trong dự án bao gồm một lý, kiểu xe và thư mục xem.

Bước 2: Tạo một JsonResult điều khiển hành động

Mở rộng các thư mục Models và thêm một class mới vào project có tên là Customer có các thuộc tính sau:

public class Customer
{
      public int CustomerID { get; set; }
      public string FirstName { get; set; }
      public string LastName { get; set; }
      public int Age { get; set; }
}

Mở rộng thư mục Controllers và mở các class tên là HomeController.cs trong cửa sổ soạn code. Chú ý rằng nó có một vài hành động được xác định theo mặc định. Nhập khẩu các không gian tên được chỉ định cho các Customer class sử dụng hoặc tuyên bố nhập khẩu và sau đó thêm các action sau đây để trả về một List.

public JsonResult GetCustomers()
{
        List custs = new List
       {
             new Customer
             {
                  CustomerID = 1,
                  FirstName = "John",
                  LastName = "Doe",
                 Age = 50
              },
             new Customer
            {
                    CustomerID = 2,
                  FirstName = "Jane",
                  LastName = "Doe",
                  Age = 47
            }
       };
       return Json(custs);
}


ASP.NET MVC Controller actions thường được trả lại một loại ActionResult. Tuy nhiên, bởi vì actions này trở về dữ liệu JSON một loại JsonResult trở lại được xác định. Khi đối tượng List được tạo ra nó được chuyển thành dữ liệu JSON bằng cách sử dụng phương pháp xây dựng trong JSON.

Bước 3: Kêu gọi một hành động điều khiển và Kết quả Binding

Mở rộng thư mục Views/Home và mở file index.aspx trong cửa sổ soạn code. Để sử dụng chức năng trong Script ASP.NET Script Library có thể được dùng để nạp object script và các tập lệnh MicrosoftAjaxWebServices.js. Thêm dòng sau vào trong kiểm soát nội dung rằng có một giá trị ContentPlaceHolderID của "MainContent":




Điều quan trọng cần lưu ý là lệnh được dùng nhiều lần trong một ứng dụng ASP.NET MVC có thể được tải tại của ứng dụng trang Master để bảo trì đơn giản hóa như trái ngược với tải chúng trong một Xem cụ thể.

Bây giờ mà các thành phần DataView được tạo ra mẫu mà nó gắn với nhu cầu để được tạo ra. Thêm sau mẫu mã dưới đây đóng yếu tố :

 
        {{FirstName}} {{LastName}}
       



DangTrung

Chủ Nhật, 1 tháng 3, 2009

ASP.NET Ajax : Cách Gọi WCF Web Services

WCF (Windows Communication Framework) cung cấp dữ liệu một cách linh hoạt đến các ứng dụng Ajax. Hướng dẫn này cung cấp step-by-step xem cách WCF có thể được sử dụng với ASP.NET Ajax Library lấy dữ liệu từ services và gắn nó vào hệ thống điều khiển bằng cách sử dụng các DataView component và template. Từng bước được thực hiện bao gồm:
  • Tạo một WCF Services
  • Loading Scripts Bắt buộc
  • Gọi một WCF Services sử dụng DataView
Bước 1: Tạo một WCF Service

Để tạo một Ajax-enabled WCF Service, kích chuột phải vào một dự án ứng dụng web hay Website trong Visual Studio và chọn Add New Item. Chọn AJAX-enabled WCF Service mẫu như trong hình 1.


Hình 1. Thêm một Ajax-enabled WCF Service vào một Visual Studio ứng dụng web hay project Website.

Sau khi Ajax-enabled WCF Service được tạo ra một hoạt động có thể được thêm tùy chỉnh trả về dữ liệu đến các Ajax application. Các code sau đây cho thấy cách một danh sách các Customer objects có thể được trả lại từ một hoạt động service:

[ServiceContract(Namespace = "http://www.mycompany.com/MyAjaxService")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyAjaxService
{
        [OperationContract]
        public List GetCustomers(int numberToFetch)
        {
                using (NorthwindDataContext context = new NorthwindDataContext())
               {
                      return context.Customers.Take(numberToFetch).ToList();
               }
         }
}

Bước 2: Loading Scripts Bắt buộc

The ASP.NET AJAX Thư viện cung cấp một thành phần DataView có thể được sử dụng để lấy dữ liệu từ một dịch vụ WCF và gắn nó vào một bản mẫu. Để tải tập lệnh được yêu cầu của các thành phần DataView bộ nạp Script có thể được sử dụng:


Bước 3: Kêu gọi một WCF Service sử dụng DataView

Các thành phần DataView có thể được dùng để gọi một dịch vụ web với một số tiền tối thiểu của mã. Để tạo một DataView Sys.create.dataView dụ sử dụng và vượt qua các bản mẫu để ràng buộc vào cũng như các tham số xác định các dịch vụ WCF để gọi. URI dịch vụ và hoạt động để gọi có thể được xác định bằng cách sử dụng dataProvider và các thông số fetchOperation như được hiển thị tiếp theo:

Sys.require([Sys.components.dataView, Sys.scripts.WebServices], function() {
      Sys.create.dataView("#CustomerView",
     {
             dataProvider: "/Services/MyAjaxService.svc",
             fetchOperation: "GetCustomers",
             autoFetch: true,
             fetchParameters: {numberToFetch: '10'},
             itemRendered: CustomerRendered
      });

     function CustomerRendered(dataView, ctx) {
           Sys.bind(Sys.get("li", ctx), "innerHTML", ctx.dataItem, "ContactName");
     }
});

Mã này kêu gọi các hoạt động GetCustomers ngày MyAjaxService.svc và vượt qua giá trị là 10 cho tham số numberToFetch. Bằng cách đặt các dịch vụ bất động sản autoFetch đúng sẽ được gọi là tự động khi tải trang. Sau khi trở về dữ liệu từ các dịch vụ WCF chức năng CustomerRendered sẽ được gọi là mỗi dòng dữ liệu là bị ràng buộc vào một khuôn mẫu được đặt tên CustomerView. CustomerRendered liên kết với các tài sản contactname của mỗi dòng dữ liệu đến một phần tử
  • . Các CustomerView mẫu được hiển thị tiếp theo:

          
                 
  •        

    Các DataView component và các thông số của nó có liên quan cũng có thể được định nghĩa trực tiếp trên một mẫu như sau:

       
           
              
              
              
           
           
               
                     dataview:dataprovider="/Services/MyAjaxService.svc"
                     dataview:fetchParameters="{{ {numberToFetch: 10} }}"
                     dataview:fetchoperation="GetCustomers">
                   
                        
  • {{ContactName}}
  •                
              
         

    Mã này bắt đầu bằng cách xác định một "dataview" các yếu tố với giá trị là "javascript: Sys.UI.DataView". Một ví dụ của các thành phần DataView được tạo ra như là tải trang bằng cách gắn các không gian tên vừa được định nghĩa dataview cho mẫu bằng cách sử dụngsys:attach="dataview". Tham số được sử dụng bởi các thành phần DataView được định nghĩa trực tiếp trên mẫu của
    tố và tiền tố với "dataview" tiền tố không gian tên.

    Chúc bạn thành công.
    DangTrung.