This article is currently in the process of being translated into Vietnamese (~99% done).
Query String (GET data)
Một trong nhưng cách phổ biến nhất để lấy input từ user trong một web application là thông qua query string . Ở những công nghệ cũ như PHP và ASP truyền thống , Các bạn sẽ làm việc trực tiếp với query string ,nhưng như đã đề cập ở phần trước, ASP.NET MVC đã gom hầu hết các chuỗi query xử lý vào tham số cho Controller actions của các bạn . Tuy nhiên, ở một số trường hợp, nó sẽ vẫn có sự liên quan trực tiếp từ query string và thật may mắn là nó vẫn rất dễ sử dụng trong ASP.NET MVC
Query string là gì ?
URL được tạo thành từ nhiều thành phần như protocol, hostname, path .v.v. query string là một phần của URL -là phần đằng sau ký tự hỏi chấm. Trong URL sau :
https://www.google.com/search?q=test&oq=hello
Mọi thứ phía sau kí tự "?" thì được xem là query string. Trong trường hợp này, có 2 tham số: một là q và một là oq. Chúng có giá trị là "test" và "hello". Những thứ này sẽ có liên quan đến việc hiển thị trang bằng URL- ví dụ, tham số q cho server biết rằng người dùng vừa tìm kiếm thứ gì. query string thường được xem là kết quả của việc click link hay submiting FORM của người dùng. Nó cho phép cùng một file trên server của bạn xử lý nhiều trường hợp - có thể có sự khác nhau của output trả về dựa trên input thông qua query string
Accessing the query string
Cách đơn giản để truy cập được query string trong ASP.NET MVC là sử dụng HttpContext class - thứ được đề cập đến trong cả chapter này. Thông tin về query string được xác định bằng một trong các Property sau : HttpContext.Request.QueryString and HttpContext.Request.Query. Sự khác biệt là QueryString là chuỗi text bình thường trong khi thuộc tính Query cho phép bạn dễ dàng truy cập đến keys và values của chúng. Chúng tôi sẽ sử dụng thuộc tính Query trong ví dụ sau - Tôi sẽ chứng minh làm việc với nó dễ như ăn bánh vậy :
public class HomeController : Controller
{
public IActionResult QueryTest()
{
string name = "John Doe";
if (!String.IsNullOrEmpty(HttpContext.Request.Query["name"]))
name = HttpContext.Request.Query["name"];
return Content("Name from query string: " + name);
}
}
Hiện giờ ta có thể gọi Page bằng URL như sau, để phản ánh tên của user
/Home/QueryTest?name=Jenna Doe
Như bạn thấy đấy, Tôi chỉ đơn giản là kiểm tra sự tồn tại của tham số "name" bằng query string và nếu nó tồn tại, Tôi sẽ truyền nó vào trong biến
Tóm tắt
Truy cập vào chuỗi query trong ASP.NET MVC project thật đơn giản, Thực sự biết ơn HttpContext class =))