Như p.campbell chỉ-out, các tập tin designer.cs liên kết các tập tin .aspx đến file .aspx.cs CodeBehind của nó. Không có tệp .designer.cs, mọi điều khiển trang .aspx trong tệp .aspx.cs CodeBehind sẽ trả về lỗi ", không tồn tại trong ngữ cảnh hiện tại". Liên kết trong .designer.cs được thực hiện dựa trên thuộc tính "Inherits" của chỉ thị @ Page trong tệp aspx cùng với không gian tên và lớp của tệp .Baspx.cs CodeBehind. Phân đoạn cuối cùng của thuộc tính "Inherits" phải khớp với lớp được định nghĩa trong cả tệp CodeBehind và tệp .designer.cs và các phân đoạn trước đó phải phù hợp với không gian tên của tệp .designer.cs và CodeBehind.
Ví dụ: myfile.aspx
<%@ Page Language="C#"
AutoEventWireup="true"
CodeBehind="myfile.aspx.cs"
Inherits="my.namespace.dot.classname" %>
myfile.aspx.cs
namespace my.namespace.dot {
public partial class classname : Page { ... }
}
Lưu ý: các lớp tập CodeBehind phải kế thừa từ trang lớp, hoặc một số dẫn xuất của chúng.
myfile.designer.aspx.cs
namespace my.namespace.dot {
public partial class classname { ... }
}
Lưu ý: lớp designer.cs không quan tâm về thừa kế, chỉ là tên lớp phù hợp với CodeBehind và các tập tin .aspx.
Bạn có thể tạo một tập tin bị mất .designer như thế này (w3cgeek.com "Regenerate designer.cs '):
- Tạo, tập tin trống mới trong cùng một thư mục như .aspx và .aspx.cs của bạn tập tin có tên' myfile.aspx.designer.cs "trong đó" myfile "là tên của các tệp .aspx và .aspx.cs mà bạn muốn liên kết.
- Thêm vùng tên với một lớp trống vào tệp mới và đảm bảo tên của chúng khớp với không gian tên và lớp được chỉ định trong tệp .aspx và .aspx.cs mà bạn đang liên kết.
- Lưu tệp .designer.cs, thực hiện bất kỳ thay đổi nào đối với tệp .aspx (ví dụ: thêm dấu cách) và lưu tệp .aspx.
Visual Studio sẽ tự động điền tệp .designer.cs với tất cả mã cần thiết để liên kết tệp .aspx và CodeBehind của bạn. Các lỗi "không tồn tại trong bối cảnh hiện tại" bây giờ sẽ biến mất!
EDIT: Tôi đã thêm hướng dẫn .designer.cs vì liên kết đã chết mà ban đầu được đăng bởi p.campbell.
Nguồn
2017-12-06 17:52:09
Cảm ơn bạn đã trả lời nhưng Bạn có thể yêu cầu xây dựng lại tệp thiết kế cho một trang theo cách thủ công không? – bAN
@ban: bạn đặt cược, dưới đây là cách tạo lại tệp thiết kế của bạn: http://www.undermyhat.org/blog/2009/07/tip-regenerate-aspx-designer-cs-files-when-corrupted/ –