2009-06-26 48 views
18

Trong ứng dụng ASP.Net MVC 1.0, có thể truy cập vào các cài đặt ứng dụng (MyProject.Properties.Settings.Default. *) Từ bên trong View của tôi (trang aspx) không?Cài đặt ứng dụng truy cập từ ASP.Net MVC Xem

Tôi đã thử nhưng trình biên dịch và trình biên dịch không thích nó. Nó nói rằng nó là không thể tránh khỏi do mức độ bảo vệ.

+0

Một câu hỏi khác sẽ là: nên xem được phép đọc bất cứ điều gì từ cấu hình? –

+0

Câu hỏi liên quan của bạn (được đề cập trong phần bình luận trong câu trả lời của Haack): Bạn cần mở tệp cài đặt, ở góc trên bên phải, bạn có thể đặt khả năng truy cập (nội bộ so với công khai) – Bertvan

+1

. Đừng làm điều đó – Dariusz

Trả lời

18

Chế độ xem của bạn chỉ chịu trách nhiệm hiển thị dữ liệu do Bộ điều khiển cung cấp. Đó là trách nhiệm đối với bố cục. Vì vậy, tôi khuyên bạn nên chuyển dữ liệu Ứng dụng đến chế độ xem từ trong hành động Bộ điều khiển của bạn.

Có nói rằng, câu trả lời kỹ thuật cho câu hỏi của bạn là ViewPage xuất phát từ trang, vì vậy bạn chỉ có thể làm điều này:

<%= Context.Application["setting"] %> 

Nhưng một lần nữa, tôi không khuyên bạn nên nó.

+0

Cảm ơn Phil. Lời giải thích của bạn có ý nghĩa với tôi. Tôi đang triển khai dịch vụ loại PhotoGaller và đã xác định kích thước hình ảnh mặc định trong web.config. Tôi muốn hiển thị các kích thước này cho người dùng để họ hiểu rằng hình ảnh của họ cần phải phù hợp với các kích thước nhất định, nếu không, hình ảnh sẽ được thay đổi kích thước/bị từ chối. Vì vậy, nó là hoàn toàn cho mục đích hiển thị trên quan điểm của tôi. Tôi sẽ chuyển thông tin này từ Bộ điều khiển tới Chế độ xem của tôi. Cảm ơn., –

+0

Câu hỏi liên quan là - tại sao tôi không thể truy cập lớp cài đặt được nhập mạnh mẽ từ Chế độ xem của tôi. Tôi đang đề cập đến tệp settings.settings, thường được truy cập thông qua MyProject.Properties.Settings.Default.StronglyTypedSetting. Tôi biết rằng tôi không nên làm điều này - tôi hiểu điều này. Tôi muốn hiểu tại sao trình biên dịch sẽ không cho tôi truy cập vào nó. Lớp cài đặt được đánh dấu là nội bộ, và tôi đang cố gắng truy cập nó từ bên trong cùng một dự án, cho đến chừng nào tôi có thể nói, không có vấn đề gì cả .. –

+0

Nhưng, nếu thông tin trong cài đặt là của một bản chất toàn cầu hơn - số phiên bản ứng dụng, ví dụ - và thông tin được hiển thị bởi một hoặc nhiều trang chính, thì đây không phải là trách nhiệm liên quan đến bộ điều khiển. Nó sẽ có ý nghĩa hơn để xử lý điều này trong một HttpHandler hoặc HttpModule thực hiện? – belugabob

26

Tôi đã có một vấn đề tương tự như Saajid Ismail nơi cài đặt của tôi trong namespace.Properties.Settings.Default.Setting họ ở đó khi họ được đánh mạnh ..

Để làm cho họ tiếp cận tôi chỉ đơn giản là phải thay đổi sửa đổi lần truy cập enter image description here

+2

Cảm ơn bạn, điều này đã giải quyết được vấn đề cho tôi :) –

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