Cách gán giá trị cho biến trong cshtml
Có cách nào để lấy giá trị của một biến trong mã Razor Page phía sau trang (cshtml. cs) từ trang cshtml? Show Trang cshtml là những gì được hiển thị trong trình duyệt. Người dùng nhấp vào liên kết hoặc gửi biểu mẫu để gửi dữ liệu từ trình duyệt đến mã phía sau trên máy chủ Tôi đã đọc ở đâu đó rằng bạn có thể làm điều này nếu biến của bạn là công khai hoặc được bảo vệ trong cshtml. cs, nhưng điều đó dường như không hiệu quả với tôi Giống như trong mã C# thông thường, bạn có thể xác định các biến trong Razor, để lưu trữ thông tin để sử dụng sau này. Nếu bạn đã ở trong phạm vi mã, e. g. bên trong câu lệnh if hoặc cấu trúc điều khiển khác, bạn có thể định nghĩa nó ngay lập tức. Nếu bạn đang ở trong phạm vi đánh dấu, bạn có thể sử dụng khối mã Razor, như được mô tả trong bài viết trước, để xác định biến của bạn bên trong. Đây là một ví dụ
Tất nhiên, bạn có thể xuất nó một cách dễ dàng, trực tiếp trong hoặc bên ngoài khối mã, bằng cách tham chiếu tên. Đây là một ví dụ về nó
Tất nhiên, bạn có thể làm việc và thao tác với các biến của mình và áp dụng logic cho chúng, giống như bạn làm trong C#
Bản tóm tắtKhai báo và sử dụng các biến trong Razor cũng dễ như sử dụng chúng trong mã C# thông thường của bạn. Như bạn sẽ thấy trong các ví dụ sau, việc truy cập dễ dàng vào các biến trong đánh dấu của bạn có thể thực sự hiệu quả. ViewBag, ViewData, TempData và Session là
A. Thiết lập môi trường MVC để kiểm tra mãBước 1 - Tạo một ASP. ứng dụng NET MVC Chúng tôi sử dụng phiên bản hiện tại của Visual Studio 2019 16. 9. 4 và. Khung lưới 4. 8 để xây dựng ứng dụng,
Lưu ý Bước 2 - Thêm ViewBag, ViewData, TempData và Session Trong Bộ điều khiển, cập nhật hành động HomeController/Index,
Trong Xem/Homw/Chỉ mục. cshtml,
Kết quả, B. ViewBag, ViewData, TempData và Session là gìViewBag, ViewData, TempData và Session là các tùy chọn để gửi giá trị từ bộ điều khiển tới chế độ xem hoặc tới các trang/phương thức hành động khác 1, Chúng là thuộc tính của Controller trong MVC Cụ thể, ViewBag, ViewData và TempData là các thuộc tính của lớp ControllerBase, lớp này là cha của Lớp Trình điều khiển Trong khi Phiên là thuộc tính của lớp Trình điều khiển, 2, Loại Tất cả chúng đều là Loại từ điển với chuỗi làm khóa, ngoại trừ ViewBag là loại động
Ghi chú ViewBag là một trình bao bọc trên ViewData và cho phép lưu trữ và truy xuất các giá trị bằng cú pháp thuộc tính đối tượng thay vì cú pháp khóa-giá trị được sử dụng bởi các đối tượng từ điển. Nó làm như vậy bằng cách sử dụng tính năng kiểu dữ liệu động của. MẠNG LƯỚI C. Cách hoạt động của ViewBag, ViewData, TempData và Session1, ViewBag và ViewData Chúng có thể được sử dụng để truyền dữ liệu từ bộ điều khiển sang chế độ xem, chỉ một cách trong cùng một yêu cầu Ví dụ sau đây cho thấy nếu ViewBag được gán giá trị trong một hành động --- chỉ mục, nhưng cố truy xuất từ chế độ xem khác --- Giới thiệu (hai chuyến đi, hai yêu cầu), nó sẽ không hoạt động Nhận xét ViewBag từ Index, Thêm mã vào Xem/Trang chủ/Giới thiệu. cshtml,
Chạy ứng dụng, nó sẽ chuyển đến trang Chỉ mục, sau đó nhấp vào nút Giới thiệu để điều hướng đến trang Giới thiệu Chúng tôi gặp lỗi do giá trị được xác định trong ViewBag chỉ tồn tại trong cùng một hành động, trong cùng một yêu cầu, tôi. e. trong Chế độ xem/Trang chủ/Giới thiệu. cshtml truy xuất giá trị ViewBag, nó phải được xác định trong Action About, Sự khác biệt giữa ViewBag và ViewData,
2, Dữ liệu tạm thời TempData được sử dụng để truyền dữ liệu từ chế độ xem sang bộ điều khiển, bộ điều khiển sang chế độ xem hoặc từ một phương thức hành động này sang phương thức hành động khác của cùng một bộ điều khiển hoặc bộ điều khiển khác TempData lưu trữ dữ liệu tạm thời và tự động xóa dữ liệu sau khi truy xuất giá trị. tôi. e. , Nó có thể được truy xuất một lần và chỉ một lần Chúng tôi demo cách TempData chuyển thông tin bằng ví dụ sau (bạn cần chạy ví dụ từ bước 1 đến bước 4, từng cái một) Bước 1 - Chuyển đến Chỉ mục hành động để xác định Dữ liệu tạm thời
khi ở Chế độ xem. nhận xét TempData,
Kết quả. không hiển thị TempData như mong đợi, Bước 2 - Chuyển đến Liên hệ hành động để không phải làm gì, nhưng trong Chế độ xem Truy xuất TempData["Student"], đồng thời xác định lại TempData["name"] = "Steve" ________số 8Kết quả. hiển thị dữ liệu TempData["Student"] đã truy xuất Bước 3 - Chuyển đến Hành động Giới thiệu Truy xuất TempData["name"] và xác định lại TempData["Student"]
Lượt xem. hiển thị TempData["Sinh viên"] 0Kết quả. như mong đợi. hiển thị TempData["Student"] Bước 4 Cuối cùng, Quay lại Click Liên hệ. thử truy xuất TempData["Student"] lần thứ hai, chúng tôi nhận được thông báo lỗi, Cuối cùng, chúng ta nên đề cập đến,
3, Phiên
Bản tóm tắtBài viết này thực sự đã thảo luận về ASP. NET MVC ViewBag, ViewData, TempData và Session. Chúng tôi sẽ rời khỏi ASP. NET Core MVC để cùng thảo luận trong bài viết tiếp theo |