2012-03-29 36 views
10

Bất kể cấu hình web gốc của máy tính của tôi (một trong Windows/Microsoft.NET/...) có chứa các yếu tố system.web/pages/namespaces/add hay không, nó vẫn được yêu cầu bao gồm sử dụng câu lệnh trên mỗi tệp CodeXehind aspx.cs. Tại sao? Không nên nó biên dịch và không phàn nàn rằng nó không thể hiểu một trang là gì? Sau khi tất cả, <add namespace="System.Web" /> tồn tại trong root.config gốc!Điểm của thẻ System.web/Pages/Namespaces của Web.config là gì?

+0

Nó sẽ biên dịch với các khiếu nại sai, hoặc thực sự sẽ không biên dịch? VS luôn luôn phải vật lộn với các không gian tên điều khiển được thêm vào webconfig, tuy nhiên trong hầu hết các trường hợp mọi thứ đều được xây dựng và chạy tốt ... –

+0

Nó không biên dịch. Trong một hệ thống nơi mã máy chủ cư trú trong tệp CodeBehind, có thật sự là giá trị bằng không cho phần cấu hình web cụ thể này. – JonathanWolfson

Trả lời

9

Yếu tố system.web/pages/namespaces/add là dành cho .ASPX file, bình thường .CS file (bao gồm cả .ASPX.CS) vẫn cần phải làm đúng using như không có tiền xử lý của nguồn trước khi biên dịch. Vì vậy, .ASPX.CS phải là tệp CS hợp lệ bao gồm tất cả các khai báo using Namespace.

+0

hi, bạn có thể giải thích thêm về 'tiền xử lý' hay không. các tệp .aspx tương tác với 'system.web/pages/namespaces' (hoặc chỉ dẫn [@import]) trong khi 'xử lý trước' như thế nào. cảm ơn. – pinopino

+0

@pinopino - nếu bạn có câu hỏi, hãy hỏi câu hỏi mới (và nếu bạn đang hỏi câu hỏi làm rõ - thực sự liên kết với bản gốc). Tôi không hoàn toàn chắc chắn những gì bạn muốn tìm hiểu về tiền xử lý liên quan đến ASP.Net là không có. Bạn có thể bắt đầu với [wikipedia - Preprocessor] (http://en.wikipedia.org/wiki/Preprocessor_%28programming%29). –

7

Điều này thêm không gian tên vào tệp aspx và ascx của bạn để bạn không phải bao gồm các câu lệnh <%@ Import Namespace="MyNameSpace" %>.

Từ documentation on MSDN:

Yếu tố không gian tên định nghĩa một tập hợp các chỉ thị nhập khẩu để sử dụng trong quá trình lắp ráp trước khi biên dịch. Thuộc tính này tương ứng với chỉ thị nhập @ trên trang ASP.NET. Chỉ thị Nhập @ cho phép bạn chỉ định các không gian tên được tự động nhập vào tất cả các trang của một ứng dụng.

Codebehind của bạn không bị ảnh hưởng bởi các mục nhập web.config này.

+0

Đây là những gì tôi đã tìm thấy, liên quan đến VB.NET. Trong một trong các máy của tôi, tôi không thể xây dựng và trên một máy khác tôi có thể. Vì vậy, tôi đã đi đến về màn hình và xem: Điều này có thể xây dựng: "Microsoft Visual Basic 2010 01019-532-2002102-70462". Điều này không thể: "01019-532-2002102-70649". Hy vọng nó giúp. –

5

Các câu trả lời khác ở đây cho biết rằng cài đặt web.config này chỉ ảnh hưởng đến các trang ASPX chứ không ảnh hưởng đến các trang mã sau như ASPX.CS. Tôi vừa thử nghiệm điều này trong một trang web ASP.NET nhắm mục tiêu .NET 4.0, và đã tìm thấy điều này là đúng cho các trang C#, nhưng không đúng cho các trang VB.

Thêm vùng tên vào cài đặt web.config đã xóa yêu cầu liệt kê nó ở đầu mỗi trang ASPX.VB.

Tôi sẽ quan tâm đến bất kỳ lý do nào tại sao điều này có thể xảy ra. Tôi đã có thể nghĩ rằng nó sẽ làm việc cho cả ASPX.CS và ASPX.VB mã phía sau các tập tin.

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