ASP.NET и IsNew на уровне страницы

Никогда не видел этого раньше в разработке ASP.NET. Я пытаюсь реорганизовать 40 одностраничных страниц ASP.NET в стиле кода программной части.

Что делает этот код?

// Validate required parameters (if "new", then nothing is required)
if (!this.IsNew())
{
  if (string.IsNullOrEmpty(_billId))
  {
    responseErrorNo = 4;
    Utils.SendError(respErrNum);
  }
}

Это страница одностраничного дизайна ASP.NET в блоке метода Page_Load.

На странице кода программной части этот код ( .IsNew) не распознается. Что мне здесь не хватает? Есть ли страница MSDN на IsNew «страницы»?

обновить Хорошо. Это мой глупый ход дня. Был небольшой метод, скрывающийся внизу серверной части, был защищен bool IsNew()

см. комментарии о точке наследования. http://msdn.microsoft.com/en-us/library/015103yb.aspx


person BuddyJoe    schedule 28.04.2010    source источник
comment
У ваших страниц есть собственный базовый класс?   -  person Yauheni Sivukha    schedule 28.04.2010


Ответы (3)


Вы сделали поиск по всем исходным файлам для IsNew?

Некоторые возможности
1. Это метод, унаследованный от базового класса, если он у вас есть, конечно
2. IsNew может быть методом расширения. http://msdn.microsoft.com/en-us/library/bb383977.aspx
3. IsNew является членом класса

person Chris Taylor    schedule 28.04.2010

Если ваш файл кода программной части наследуется от пользовательского класса страницы, например, в классе PageBase вместо стандартной System.Web.UI.page, IsNew может быть там, и, возможно, ваша страница должна реализовать это... АЛЬТЕРНАТИВНО , это может быть метод расширения для класса страницы, и вам не хватает ссылки на пространство имен, чтобы включить его...

ХТН.

person Brian Mains    schedule 28.04.2010
comment
одностраничный дизайн не может наследоваться от пользовательского класса. Внутри ‹script runat=server›‹/script› нет объявления класса. Это одна из причин, по которой я меняю дизайн. - person BuddyJoe; 28.04.2010
comment
Директива @Page имеет атрибут Inherits; разве вы не можете наследовать его от базового класса, используя это, установив его в свойство? Кажется, я видел несколько примеров этого, нашел одного комментатора, который сказал, что это было больно, но я бы тоже переписал это, если бы у меня была возможность :-) - person Brian Mains; 29.04.2010

Это озадачивает, поскольку класс System.Web.UI.Page определенно не имеет метода IsNew(). Этого можно добиться только в том случае, если страница наследуется от базовой страницы или, возможно, если есть метод расширения, расширяющий страницу .

Можете ли вы щелкнуть правой кнопкой мыши метод в Visual Studio и найти определение?

person Dan Diplo    schedule 28.04.2010