2012-03-31 27 views
5

đây là lần đầu tiên tôi đăng trên StackOverflow nhưng trang này thật tuyệt vời. Cảm ơn trước vì bất kỳ trợ giúp nào bạn có thể cung cấp.ASP.NET - Cách tạo hiệu quả menu động dành riêng cho người dùng từ cơ sở dữ liệu

Tôi có trang web cung cấp cho người dùng quyền truy cập vào các trang khác nhau dựa trên quyền của họ để mỗi người dùng cần có trình đơn được tạo động khi họ đăng nhập. Tuy nhiên, tùy chọn của người dùng có thể sẽ không thay đổi thường xuyên.

Trang web hiện có trang chính để lấy danh sách các trang của họ từ cơ sở dữ liệu và tạo một menu. Nó thực hiện điều này mỗi khi người dùng tải một trang.

Tôi muốn cắt giảm các cuộc gọi đến cơ sở dữ liệu để bắt đầu đưa dữ liệu trình đơn vào biến Phiên. Tôi đã hy vọng một người nào đó có kinh nghiệm hơn có thể giúp tôi trong việc đảm bảo rằng đây là cách tốt nhất để làm điều đó. Tôi nghĩ rằng tôi muốn một cách để lưu trữ nó trên máy tính của người dùng chứ không phải máy chủ.

Tôi có điều này là thạc sĩ của tôi tải trang:

User u = new User(Page.User.Identity.Name, Globals.getCnString()); 
     DataTable menu; 
     if(Session["MENU"] == null) 
     { 
      Session["MENU"] = u.getMenu(); 
     } 
     menu = (DataTable)Session["MENU"]; 

     foreach (DataRow r in menu.Rows) 
     { 
      //build menu code here. 
     } 

Cảm ơn một lần nữa!

Trả lời

1

Nếu tùy chọn của người dùng sẽ không thay đổi thường xuyên, tại sao bạn không tạo menu khi thay đổi xảy ra, lưu nó vào bảng hồ sơ của người dùng (ở định dạng html) và chuyển nó vào điều khiển theo nghĩa đen trong trang chính thay vì trình đơn, theo cách đó bạn sẽ không lưu trữ nó trên máy của người dùng (không được đề xuất cho trang web).

0

Tạo tệp XML có danh sách URL. Đối với mỗi phần tử URL, hãy thêm thuộc tính cho quyền và căn cứ vào mức độ hiển thị của từng liên kết trên đó.

Các vấn đề liên quan