Класс C # App_Data, не унаследованный aspx - наследует вопрос об атрибуте

Я пытался понять это некоторое время, и хотя есть много результатов Google для сообщения об ошибке, которое я получаю, решение ускользает от меня. Я думаю, что делаю то, что должен делать.

VS2010, я создал common.cs в App_Data. Содержимое common.cs — это функции, которые будут использоваться всеми страницами. Насколько я могу судить, это правильный способ совместного использования кода программной части на нескольких страницах.

App_Data\common.cs

namespace nprah
{
    public class BasePage : System.Web.UI.Page
    {
    }
{

рыба-крик.aspx.cs

namespace nprah
{
    public partial class Fishck : BasePage
    {
    }
}

рыба-крик.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="fish-creek.aspx.cs" Inherits="nprah.BasePage" %>  

Если я правильно понимаю атрибут Inherits, то он должен содержать NameSpace.ClassName, что и есть у меня. См.: http://support.microsoft.com/kb/312311.

Когда я запускаю этот код, он приводит к следующему выводу:

Сообщение об ошибке компилятора: ASPNET: убедитесь, что класс, определенный в этом файле кода, соответствует атрибуту «наследует» и расширяет правильный базовый класс (например, Page или UserControl).

Ошибка источника:

Строка 11: {
Строка 12:
Строка 13: общедоступный частичный класс Fishck : BasePage
Строка 14: {
Строка 15:

Visual Studio не показывает никаких ошибок во время проектирования. Любое руководство, которое вы можете предоставить, будет высоко оценено. Заранее спасибо.


person Reality Extractor    schedule 02.05.2011    source источник
comment
может быть опечаткой, но в заголовке aspx указано, что файл кода программной части называется «fish-creek.aspx.cs», а в фрагменте кода указано «fishck.aspx.cs».   -  person agradl    schedule 02.05.2011
comment
да, имена файлов были просто опечаткой   -  person Reality Extractor    schedule 02.05.2011


Ответы (1)


В вашем ASPX это должно быть

Inherits="nprah.Fishck"

Наследование в вашем .aspx должно сопоставляться с вашим файлом кода (.cs)... и оттуда ваш файл кода наследует вашу базовую страницу, как вы уже сделали.

А также попробуйте проверить это: CodeFile="fish-creek.aspx.cs". Потому что с именем файла, которое вы предоставили, оно должно быть: Codefile="fishck.aspx.cs". Может просто опечатка.

person Sylvain Perron    schedule 02.05.2011
comment
+1 за, а также... кажется, что есть разница между фактическим именем класса и именем, запрошенным на странице aspx - person NotMe; 02.05.2011
comment
Большое тебе спасибо! Не могу поверить, что проглядел очевидное, когда просматривал примеры, которые нашел в Google. Смешение имени файла действительно было просто опечаткой, переносящей его на SO. Исправлено в исходном вопросе. - person Reality Extractor; 03.05.2011