Jak p.campbell wskazał-out, plik .designer.cs łączy plik .aspx do swojego pliku .aspx.cs kodzie. Bez pliku .designer.cs każda kontrolka strony .aspx w pliku .aspx.cs CodeBehind zwróci błąd, "nie istnieje w bieżącym kontekście". Powiązanie w .designer.cs odbywa się w oparciu o właściwość "Dziedziczenia" dyrektywy @ Page w pliku aspx wraz z przestrzenią nazw i klasą pliku .aspx.cs CodeBehind. Końcowy segment właściwości "Inherits" musi być zgodny z klasą zdefiniowaną zarówno w pliku CodeBehind, jak i pliku .designer.cs, a segmenty poprzedzające muszą być zgodne z przestrzenią nazw plików .designer.cs i CodeBehind.
przykład: 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 { ... }
}
uwaga: kodzie klasy plik musi dziedziczyć z klasy strony, lub ich pochodnych.
myfile.designer.aspx.cs
namespace my.namespace.dot {
public partial class classname { ... }
}
Uwaga: klasa .designer.cs nie dba o dziedziczeniu, tak że nazwa klasy dopasowuje kodzie oraz plików aspx.
można zregenerować utracony plik .designer tak (w3cgeek.com "Regenerate designer.cs«):
- Utwórz nowy, pusty plik w tym samym katalogu co swoimi .aspx i .aspx.cs plików o nazwie» myfile.aspx.designer.cs "gdzie" mójplik "to nazwa plików .aspx i .aspx.cs, które chcesz połączyć.
- Dodaj przestrzeń nazw z pustą klasą do nowego pliku i upewnij się, że ich nazwy odpowiadają przestrzeni nazw i klasom określonym w plikach .aspx i .aspx.cs, które łączysz.
- Zapisz plik .designer.cs, dokonaj zmian w pliku .aspx (np. Dodając spację) i zapisz plik .aspx.
Program Visual Studio powinien automatycznie wypełnić plik .designer.cs wszystkimi niezbędnymi kodami, aby połączyć pliki .aspx i CodeBehind. Błędy "nie istnieje w bieżącym kontekście" powinny już zniknąć!
EDYCJA: Dodałem instrukcje .designer.cs, ponieważ link jest martwy, który został pierwotnie opublikowany przez p.campbell.
Dzięki za odpowiedź, ale czy można ręcznie poprosić o odbudowanie pliku projektanta dla strony? – bAN
@ban: Założę się, oto jak zregenerować swój plik projektanta: http://www.undermyhat.org/blog/2009/07/tip-regenerate-aspx-designer-cs-files-when-corrupted/ –