Tôi vừa mới bắt đầu làm việc với ASP.NET MVC bây giờ là bản beta. Trong mã của tôi, tôi đang chạy một truy vấn LINQ to SQL đơn giản để có được một danh sách các kết quả và chuyển nó tới khung nhìn của tôi. Loại điều này:Tôi có thể chuyển kiểu ẩn danh cho chế độ xem ASP.NET MVC của mình không?
var ords = from o in db.Orders
where o.OrderDate == DateTime.Today
select o;
return View(ords);
Tuy nhiên, trong chế độ xem của tôi, tôi nhận thấy rằng tôi cần truy cập tên của khách hàng cho mỗi đơn đặt hàng. Tôi bắt đầu sử dụng o.Customer.Name
nhưng tôi khá chắc chắn rằng điều này là thực hiện một truy vấn riêng biệt cho mỗi đơn đặt hàng (vì tải LINQ của lười biếng).
Cách hợp lý để cắt giảm số lượng truy vấn sẽ là chọn tên khách hàng cùng một lúc. Một cái gì đó như:
var ords = from o in db.Orders
from c in db.Customers
where o.OrderDate == DateTime.Today
and o.CustomerID == c.CustomerID
select new { o.OrderID, /* ... */, c.CustomerName };
return View(ords);
Ngoại trừ bây giờ biến "ords" của tôi là IEnumerable của một loại ẩn danh.
Có thể khai báo chế độ xem ASP.NET MVC theo cách nó chấp nhận dữ liệu xem của IEnumerable khi T được xác định bởi những gì được truyền từ bộ điều khiển hay tôi phải xác định loại cụ thể điền từ truy vấn của tôi?
Nếu có ai biết đó là bạn, Phil. Cảm ơn bạn đã có thể truy cập vào những người như tôi! –
Điều này có trả lời câu hỏi không? Tôi có vấn đề chính xác này và câu trả lời này không giúp được gì. Bạn có thể cho thấy cách chúng ta có thể lặp qua các ords và hiển thị trong một khung nhìn? –
Nó không trả lời câu hỏi! Đáng ngạc nhiên là nó hoạt động cho các hộp văn bản, nhưng nếu tôi muốn chỉ để làm cho giá trị này, làm thế nào để làm điều đó? <% = Model.Something%> không hoạt động, bạn sẽ nhận được 'đối tượng' không chứa định nghĩa cho ngoại lệ 'Cái gì đó'. – PawelRoman