Khi bạn tạo TaskController, ASP.NET MVC đã tự động tạo ra các mã lệnh và chúng hoạt động rất tốt, tuy nhiên bạn vẫn cần cải thiện để cho chúng hoạt động hiệu quả hơn. Bạn hãy mở mã cài đặt cho TaskController và thay đổi phương thức Details bằng cách trả về HttpNotFound khi không tìm thấy Task cần tìm. Bạn cũng có thể cập nhật phương thức Details để quy định giá trị mặt định của id được truyền vào cho action này. Tuy nhiên khi bạn trả về đối tượng HttpNotFound, bạn cần phải thay đổi kiểu trả về của action Details từ ViewResult thành ActionResult, bởi HttpNotFound không kế thừa từ ViewResult. public ActionResult Details(int id = 0) { Task task = db.Tasks.Find(id); if(task == null) { return HttpNotFound(); } return View(task); }
Sau khi đã điều chỉnh action này, khi bạn muốn xem thông tin của một task có id không tồn tại, ứng dụng sẽ trả về mã 404 để báo rằng ứng dụng không tìm thấy tài nguyên mong muốn (ví dụ như truy xuất /Task/Details/13343 chẳng hạn).
Đối với phương thức Delete, bạn cần lưu ý rằng phương thức này không được dùng để xóa dữ liệu, lý do là bạn không nên sử dụng các action đáp ứng GET Request để thay đổi dữ liệu, bởi nó sẽ tạo ra lổ hổng bảo mật (tôi sẽ có bài viết về điều này).
Phương thức DeleteConfirmed chỉ chấp nhận các POST request được cái đặt để xóa dữ liệu. Hai phương thức Delete và DeleteConfirmed được Visual Studio sinh ra như sau: public ActionResult Delete(int id) { Task task = db.Tasks.Find(id); return View(task); } // // POST: /Task/Delete/5 [HttpPost, ActionName("Delete")] public ActionResult DeleteConfirmed(int id) { Task task = db.Tasks.Find(id); db.Tasks.Remove(task); db.SaveChanges(); return RedirectToAction("Index"); } Tuy phương thức DeleteConfirmed có tên không phải là Delete, nhưng nó vẫn được ánh xạ với POST Request yêu cầu action Delete xử lý, đó là nhờ vào annotation [HttpPost, ActionName("Delete")]. Tuy nhiên, bạn vẫn có thể đặt tên trực tiếp cho phương thức DeleteConfirmed thành tên Delete chỉ bằng cách thêm vào tham số để cho số lượng tham số của phương thức này khác với phương thức Delete dùng để đáp ứng các GET request. Ví dụ như bạn có thể thêm vào tham số có kiểu là FormCollection, và bạn không cần phải dùng nó. [HttpPost] public ActionResult Delete(FormCollection fcNotUsed,int id) { Task task = db.Tasks.Find(id); if (task == null) { return HttpNotFound(); } db.Tasks.Remove(task); db.SaveChanges(); return RedirectToAction("Index"); } |
Cải thiện các phương thức Details và Delete - aspnet mvc
Nguồn d.jou.vn
Ý kiến bạn đọc
Tin tức khác
Xây dựng ứng dụng sử dụng Web API hỗ trợ các thao tác CRUD
- 1/11/2013
Xây dựng ứng dụng ASP.NET Web API đầu tiên
- 17/9/2013
Những điểm mới trong asp.net MVC 4
- 14/8/2013
Tăng hiệu suất ứng dụng bằng ViewEngines trong ASP.NET MVC
- 19/10/2012
Nâng cấp từ ASP.NET MVC 3 lên ASP.NET MVC 4
- 17/10/2012
Multiple submit buttons trong ASP.NET MVC Framework
- 15/10/2012
Thêm phần kiểm tra tính hợp lệ đối với Model trong asp.net mvc
- 11/10/2012
lập trình chức năng tìm kiếm and view asp.net mvc
- 9/10/2012
Khám phá action Edit aspnet mvc
- 9/10/2012
Sử dụng ELMAH và MiniProfiler với ASP.NET MVC 4
- 4/10/2012
Tin tiêu điểm
-
Xây dựng ứng dụng ASP.NET Web API đầu tiên (10,064)
-
Phân trang và tìm kiếm với Ajax bằng cách sử dụng jQuery (9,568)
-
MVC là gì? (9,468)
-
NHỮNG TÍNH NĂNG MỚI CỦA ASP.NET MVC 4 (8,777)
-
lập trình chức năng tìm kiếm and view asp.net mvc (8,458)
-
Hướng dẫn sử dụng CKFinder làm file Manager (7,983)
-
Tài Liệu Tự Học ASP.NET MVC 3 (7,314)
-
dropdownlist on mvc (7,306)
-
Thêm phần kiểm tra tính hợp lệ đối với Model trong asp.net mvc (7,050)
-
Những điểm mới trong asp.net MVC 4 (6,193)
Gallery
Text Links
Thiết kế logo chuyên nghiệp Insky
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
ca do bong da online
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
ca do bong da online
Tags
asp.net
JavaScript
Lập trình
Cơ sở dữ liệu
jquery
Csharp
Ajax
Thủ thuật
JavaScript
menu
Sql Server
Lập trình C#
WebService
stty
Sql
Phân trang
Rewrite
Mã hoá
Backup
Thủ thuật lập trình
Store procedure
Accordion
Validation
Store
Upload
Slide
jQueryPlugin
StoreProcedure
Regular Expression
Regex
android
Quick and snow
HTML5
WPF
WCF
Copyright © 2011 - 2012 vietshare.vn
by
phamkhuong102@gmail.com doanhkisi2315@gmail.com. All rights reserved.