Trong ứng dụng dựa trên Web, chúng ta luôn cần chuyển giá trị từ chế độ xem sang bộ điều khiển để nhận đầu vào và bộ điều khiển cho chế độ xem để hiển thị đầu ra
View to Controller chia sẻ dữ liệu
Để nhận đầu vào từ người dùng Chúng tôi có các cách sau để truyền dữ liệu từ chế độ xem sang bộ điều khiển
Truyền giá trị từ chế độ xem sang bộ điều khiển bằng Tham số
Trong MVC, chúng ta có thể tìm nạp dữ liệu từ chế độ xem đến bộ điều khiển bằng tham số. Trong Chế độ xem MVC, chúng tôi tạo điều khiển html để lấy đầu vào từ người dùng. Với sự trợ giúp của phần tử tên của điều khiển html, chúng ta có thể truy cập những dữ liệu này trong bộ điều khiển
Mã chỉ số. cshtml
@{
Layout = null;
}
Index
Enter First Name
Enter Last Name
Trong thực tế, tôi đã đặt bộ điều khiển chào mừng và chế độ xem chỉ mục. Vì vậy, tôi đã tạo bộ điều khiển chào mừng và tạo chế độ xem chỉ mục
Tôi đã tìm nạp dữ liệu bằng Tham số
Mã điều khiển tại nhà
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class WelcomeController : Controller
{
public ActionResult Index[String fname_name, String lname_name]
{
string fname = fname_name;
string lname = lname_name;
Response.Write["Your Full name is= " + fname + " " + lname];
return View[];
}
}
}
Bây giờ thực thi mã này
Figure 1
Đầu ra khi phương thức được đặt là Get
Figure 2
Đầu ra khi phương thức được đặt là Post
Figure 3
Như bạn có thể thấy rằng chúng ta có thể tìm nạp dữ liệu trong bộ điều khiển. Vì vậy, sau khi tìm nạp dữ liệu, chúng tôi cũng có thể lưu trữ trong cơ sở dữ liệu
Đối tượng Java được lưu trữ trong mô hình, không thể truy cập được trong các tập lệnh vì nó được thực thi ở phía máy khách
Giải pháp dễ dàng và đơn giản là tuần tự hóa đối tượng trong JSON, thêm nó vào mô hình, truy cập trong Javascript
Bạn cần một cái gì đó như thế này
ObjectMapper objectMapper = new ObjectMapper[];
result.addObject["bpmsn", objectMapper.writeValueAsString[bpmsn]];
Và nó có thể được truy cập trong tập lệnh một cách đơn giản
var bpmnJsonString = '${bpmsn}';
Obj bpmn = JSON.parse[bpmnJsonString];
var bpmnXML = bpmn.textXML;
alert[bpmnXML]
Hy vọng nó giải quyết vấn đề của bạn
Trong bài viết này, chúng tôi sẽ giải thích cách truyền dữ liệu từ chế độ xem sang bộ điều khiển bằng cách sử dụng ajax trong bộ điều khiển MVC với một ví dụ và mã mẫu. Trong ví dụ này, chúng tôi đang sử dụng sự kiện nhấp vào nút Jquery. khi nhấp chuột, chúng tôi sử dụng Phương thức đăng bài Ajax để gửi [vượt qua] dữ liệu
Có nhiều cách để truyền dữ liệu của lớp Mô hình vào Chế độ xem, sử dụng lớp Trình điều khiển. Trong bài viết này, tôi đang trình bày cách chuyển dữ liệu từ Trình điều khiển sang Chế độ xem bằng cách sử dụng một ví dụ đơn giản. Vì vậy, hãy bắt đầu và chuyển sang Visual Studio 2015 của bạn
Đặt tên cho ASP trống của bạn. NET Web Application và nhấp vào nút OK
Tôi không muốn sử dụng giải pháp đầy đủ dựa trên MVC. Bài viết dựa trên một ví dụ đơn giản, vì vậy chỉ cần chọn một mẫu trống
Thêm một lớp Mô hình bằng cách nhấp chuột phải vào thư mục Mô hình trong Giải pháp
Chọn lớp và đặt tên cho lớp của bạn
Chỉ cần nhập một vài từ của đoạn mã để tự động triển khai thuộc tính và nhấn nút tab có sẵn trên bàn phím hai lần, đây là một cách thực hành tốt khi mã dài
Lớp mô hình Bản ghi công khai chỉ chứa ba thuộc tính mà chúng tôi muốn chuyển đến Chế độ xem
- bản ghi lớp công khai
- {
- công khai int Id { get;
- chuỗi công khai RecordName { get;
- public string RecordDetail { get;
- }
Thêm một lớp trình điều khiển bằng cách nhấp chuột phải vào thư mục Bộ điều khiển
Chọn một Bộ điều khiển trống từ danh sách Giàn giáo
Đặt tên có ý nghĩa cho Bộ điều khiển của bạn
Bộ điều khiển đã sẵn sàng. Bằng cách sử dụng ViewBag, chúng tôi có thể chuyển dữ liệu từ Trình điều khiển sang Chế độ xem
ViewBag – ViewBag lấy từ điển dữ liệu dạng xem động.
Tạo một đối tượng của lớp Mô hình của bạn và giải quyết nó bằng không gian tên
Tôi đã tạo một đối tượng của lớp mô hình và gán nó trong từ điển dữ liệu ViewBag. Gán giá trị cho thuộc tính dựa trên lớp mô hình.
- công khai ActionResult Index[]
- {
- Bản ghi rec = bản ghi mới
- {
- Id = 101,
- RecordName = "Phiếu thưởng",
- RecordDetail = "Cổ phiếu cơ bản"
- };
- Xem túi. Tin nhắn = rec;
- trả về Chế độ xem[];
- }
Thêm Chế độ xem cho Hành động lập chỉ mục bằng cách nhấp chuột phải vào hành động đó
Đặt tên cho nó và chọn nút Thêm
Trước hết nhập lớp mô hình
Gán viewbag thành một biến và tất cả các thuộc tính sẽ được đặt đúng chỗ, sử dụng biến và khối Razor.
- @sử dụng PassDatainMVC. người mẫu
- @{
- Xem túi. Tiêu đề = "Chỉ mục";
- }
Truyền Dữ liệu Từ Bộ điều khiển đến Chế độ xem bằng cách sử dụng ViewBag
- @{
- var data = ViewBag. Thông điệp;
- }
ID. @dữ liệu. ID
Tên bản ghi. @dữ liệu. Tên bản ghi
Kỷ lụcChi tiết. @dữ liệu. Kỷ lụcChi tiết
Xây dựng và chạy ứng dụng của bạn. Bạn sẽ nhận được Dữ liệu ViewBag
Một cách khác để truyền dữ liệu từ Bộ điều khiển sang Chế độ xem là ViewData. Ngoài ra, một đối tượng kiểu từ điển tương tự như ViewBag. Không có thay đổi lớn nào trong Bộ điều khiển và ViewData chứa các cặp khóa-giá trị
- công khai ActionResult Index[]
- {
- Bản ghi rec = bản ghi mới
- {
- Id = 101,
- RecordName = "Phiếu thưởng",
- RecordDetail = "Cổ phiếu cơ bản"
- };
- ViewData["Message"] = rec;
- trả về Chế độ xem[];
- }
Truy cập lớp mô hình của bạn khi bạn đang sử dụng ViewData, như hình bên dưới
- @sử dụng PassDatainMVC. người mẫu
- @{
- Xem túi. Tiêu đề = "Chỉ mục";
- }
Truyền Dữ liệu Từ Trình điều khiển Tới Chế độ xem bằng cách sử dụng ViewData
- @{
- var data = [Record]ViewData["Message"];
- }
ID. @dữ liệu. ID
Tên bản ghi. @dữ liệu. Tên bản ghi
Kỷ lụcChi tiết. @dữ liệu. Kỷ lụcChi tiết
Lưu và chạy dự án của bạn. Bạn sẽ nhận được kết quả mong đợi từ ViewData
Một cách khác để chuyển dữ liệu từ Trình điều khiển sang Chế độ xem có thể là chuyển một đối tượng của lớp mô hình sang Chế độ xem. Xóa mã của ViewData và chuyển đối tượng của lớp mô hình trong chế độ xem trả về
- công khai ActionResult Index[]
- {
- Bản ghi rec = bản ghi mới
- {
- Id = 101,
- RecordName = "Phiếu thưởng",
- RecordDetail = "Cổ phiếu cơ bản"
- };
- quay lại Chế độ xem[rec];
- }
Nhập đối tượng ràng buộc của lớp mô hình ở đầu Chế độ xem chỉ mục và truy cập các thuộc tính bằng @Model
- @sử dụng PassDatainMVC. người mẫu
- @model PassDatainMVC. người mẫu. Ghi
- @{
- Xem túi. Tiêu đề = "Chỉ mục";
- }
Truyền Dữ liệu Từ Trình điều khiển Tới Chế độ xem bằng cách sử dụng Đối tượng Lớp Mô hình
ID. @Mô hình. ID
Tên bản ghi. @Mô hình. Tên bản ghi
Kỷ lụcChi tiết. @Mô hình. Kỷ lụcChi tiết
Kết quả mong đợi từ Đối tượng lớp Mô hình được đưa ra
Một cách truyền dữ liệu khác là TempData, chịu trách nhiệm lưu trữ dữ liệu tạm thời
Sau khi hoàn thành yêu cầu tiếp theo; . TempData có nguồn gốc từ TempDataDictinory. Rất hữu ích khi chuyển dữ liệu không nhạy cảm từ phương thức hành động này sang phương thức hành động khác. Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, tôi đã tạo một phương thức Hành động để kiểm tra TempData. TempData chuyển dữ liệu từ phương thức CheckTempData sang phương thức Index
- công khai ActionResult CheckTempData[]
- {
- TempData["data"] = "Tôi là dữ liệu tạm thời để được sử dụng trong yêu cầu tiếp theo";
- trả về RedirectToAction["Chỉ mục"];
- }
Truy cập TempData trong Chỉ mục. Chế độ xem Chtml được đưa ra
Chào. @TempData["dữ liệu"]
Chạy Ứng dụng và gọi phương thức hành động tương ứng. TempData sử dụng phiên nội bộ để lưu trữ dữ liệu
Tôi hy vọng, bạn thích bài viết này. Hãy theo dõi tôi để biết thêm về ASP. NET MVC, API Web và Microsoft Azure