Khoanglang89
Bạn hãy đăng nhập hoặc đăng ký
Khoanglang89

NHẬN THIẾT KẾ WEBSITE/ SOFTWARE - LÀM ĐỒ ÁN TỐT NGHIỆP, ĐỒ ÁN CHUYÊN MÔN NGÀNH CÔNG NGHỆ THÔNG TIN


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Admin

avatar

Admin
Admin
Loading
Bắt đầu với ASP.NET MVC3 (Phần 5: Accessing your Model’s Data from a Controller)
Trong phần này chúng ta sẽ tạo mới class MovieController và viết code để lấy dữ liệu movie và hiển thị lên trình duyệt sử dụng view template. Phải đảm bảo rằng ứng dụng của chúng ta được built trước khi xử lí.
Click phải chuột trên thư mục Controllers và tạo mới một controller MovieController. Lựa chọn các tùy chọn:

  • Controller name: MovieController. (Mặc định)
  • Template: Controller with read/write actions and views, using Entity Framework.
  • Model class: Movie (MvcMovie.Models)
  • Data context class: MovieDBContext (MvcMovie.Models)
  • Views: Razor (CSHTML). (Mặc định)


Click Add. Visual Web Developer tạo ra các tập tin và thư mục sau:
Một tập tin MoviesContrller.cs trong thư mục Controllers của project
Một thư mục Movies trong thư mục Views của project
Create.cshtml, Delete.cshtml, Edit.cshtml5, Index.cshtml trong thư mục mới Views\Movies\

ASP.NET MVC3 scaffolding tự động tạo các phương thức action CRUD (create, read, update, delete) và các view cho chúng ta. Chúng ta có ứng dụng web đầy đủ các chức năng cho phép chúng ta tạo danh sách, chỉnh sửa và xóa các movie.
Chạy ứng dụng trên trình duyệt và browse đến controller bằng cách thêm /Movies vào URL. Bởi vì ứng dụng sẽ dựa vào đường dẫn mặc định (định nghĩa trong tập tin Global.asax), trình duyệt sẽ yêu cầu http://localhost:xxxxx/Movies sẽ đi đến phương thức mặc định là Index của controller Movies. Trong trường hợp khác, trình duyệt yêu cầu http://xxxxx/Movies kết quả cũng tương tự với http://localhost:xxxxx/Movies/Index. kết quả trả về là danh sách rỗng, bởi vì chúng ta chưa thêm vào đó bất cứa thứ gì.
Tạo một bộ phim
chọn Create New link. Nhập vào chi tiết một bộ phim sau đó click nút Create.

Click bút Create form sẽ được post lên server, nơi mà thông tin các bộ phim được lưu trữ trong database. Sau đó chúng ta có thể chuyển trực tiếp đến /Movies URL, nơi mà chúng ta có thể thấy các bộ phim mới tạo trong danh sách.

Thêm chi tiết cho một vài bộ phim và hãy thử Edit, Detail, và Delete với tất cả các hàm.
Kiểm tra code được tạo
Mở tập tin Controllers\MoviesController.cs và kiểm tra phương thức Index đã được tạo. Phương thức Index hiển thị bên dưới là một phần của movie controller.
public class MoviesController : Controller
{
    private MovieDBContext db = new MovieDBContext();

    //
    // GET: /Movies/

    public ViewResult Index()
    {
        return View(db.Movies.ToList());
    }
}
Dòng sau đây là tạo một đối tương movie database context, như đã mô tả trước đó. Chúng ta có thể sử dụng movie database context để truy vấn, sửa chỉnh, và xóa các bộ phim.
private MovieDBContext db = new MovieDBContext();
Một yêu cầu gửi đến controller Movies trả về tất cả các dòng trong bảng Movies của database movie và sau đó sẽ chuyển kết quả đên view Index.

Strongly Typed Models và từ khóa @model

Trong các bài hướng dẫn trước, chúng ta đã thấy cách truyền dữ liệu từ controller đến view template sử dụng đối tượng ViewBag. ViewBag là một đối tượng động hỗ trợ cách thuận tiện để truyền thông tin đến view.
ASP.NET MVC ngoài ra còn cung cấp khả năng để truyền dữ liệu strongly typed hoặc đối tượng đến view template. Phương pháp tiếp cận strongly typed hỗ trợ kiểm tra code tốt hơn tại thời điểm biện dịch và IntelliSense phong phú hơn trong Visual Web Developer editor. Chúng ta sẽ sử dụng phương pháp tiếp cận này với class MoviesController và Index.cshtml view template.
Chú ý code tạo ra đối tượng List như thế nào khi nó gọi phương thức View trong phương thức Index. Sau đó code này sẽ truyền list Movies từ controller đến view:
public ViewResult Index()
{
    return View(db.Movies.ToList());
}
Bằng cách include @model vào phía trên của tập tin view template, chúng ta có thể chỉ định loại đối tượng mà view mong đợi. Khi chúng ta tạo movie controller, Visual Web Developer tự động include @model vào phía trên đầu của tập tin Index.cshtml:
@model IEnumerable
@model cho phép chúng ta truy suất đến list của movie mà controller đã truyền tới view bằng cách sử dụng một đối tượng Model đó là strongly typed. Ví dụ, trong Index.cshtml template, code sẽ lặp qua list các movie sử dụng phát biểu foreach trên mỗi đối tượng strongly typed Model:
@foreach (var item in Model) {
   
       
            @Html.DisplayFor(modelItem => item.Title)
       
       
            @Html.DisplayFor(modelItem => item.ReleaseDate)
       
       
            @Html.DisplayFor(modelItem => item.Genre)
       
       
            @Html.DisplayFor(modelItem => item.Price)
       
       
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
       
   
}
Bởi vì đối tường Model là một strongly typed (như một đối tượng IEnumerable), mỗi đối tượng item trong lần lặp là một dạng như Movie. Một lợi ích khác, đó là chúng ta có thể kiểm tra code trong thời gian biên dịch với sự hỗ trợ đầy đủ của IntelliSense trong code editor:

Làm việc với SQL Server Compact

Entity Framework Code First tìm chuỗi kết nối database được cung cấp để kết nối đến database Movies mà nó chưa tồn tại, vì thế Code First tạo ra database tự động. Chúng ta có thể kiểm tra database đã được tạo bằng cách xem trong thư mục App_Data. nếu vẫn không thấy Movies.sdf, click vào Show All Files trong Solution Explorer toolbar, click Refesh, và sau đó mở rộng thư mục App_Data.

Double-click trên Movies.sdf để mở Server Explorer. Sau đó mở rộng thư mục table để xem các bản đã được tạo trong database.

Có hai bảng là Movie và EdmMetadata. bảng EdmMetadata được sử dụng bởi Entity Framework để xác định khi nào model và database được đồng bộ.
Click phải vào table Movies chọn Show Table Data để xem dữ liệu chúng ta đã tạo.

Click phải vào table Movies và chọn Edit Table Schema.


Chú ý là lược đồ của bảng Movies được map với class Movie mà chúng ta đã tạo trước đó. EF Code First đã tự động tạo lược đồ này cho chúng ta dựa trên class Movie.
Khi bạn đã hoàn thành, hãy đóng kết nối lại (Nếu không đóng kết nối, có thể sẽ gặp lỗi trong lần run project kế tiếp).

Hiện tại chúng ta đã có database và một list page đơn giản để hiễn thị nội dung từ database. Trong bài tiếp theo, chúng ta sẽ kiểm tra tiếp phần còn lại của scaffolded và thêm vào phương thức SearchIndex và một SearchIndex view cho phép chúng ta tìm kiếm các bộ phim trong database.


_________________
Có nỗi buồn triền miên, làm trái tim hoá đá
Có những dòng lệ nhỏ, khiến đá hoá thành tim.

-------------------------------------------------------------------------------------------------------
Program Skills:  ASP.Net MVC 3/4; C#; VB.Net/ VB 6.0; Java Applet/Swing; JS/JavaScript; Bootstrap/ AngularJS; HTML/CSS; Turbo C/ Turbo C++; Pascal...
Xem mẫu Phần mêm quản lý ở đây     -           Xem mẫu Bán hàng trực tuyến ở đây
Nguyễn Ích Hoàn
new_life02081989@yahoo.com
nguyenichhoan1989@gmail.com
Xem lý lịch thành viên http://khoanglang89.forumvi.com

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Bài viết mới cùng chuyên mục

      Permissions in this forum:
      Bạn không có quyền trả lời bài viết