2

これは、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);
  }
}

Page_Load メソッドのブロック内の単一ページ デザインの ASP.NET ページです。

コード ビハインド ページでは、このコード (.IsNew) は認識されません。ここで何が欠けていますか?「ページ」の IsNew に MSDN ページはありますか?

更新 します。これは、その日の私のばかげた動きです。サーバー側の下部に小さなメソッドが隠されていましたが、保護されていました bool IsNew()

継承ポイントに関するコメントを参照してください。 http://msdn.microsoft.com/en-us/library/015103yb.aspx

4

3 に答える 3

2

IsNew のすべてのソース ファイルを検索しましたか?

いくつかの可能性
1. これは基本クラスから継承されたメソッドです。もちろん
2. IsNew は拡張メソッドである可能性があります。http://msdn.microsoft.com/en-us/library/bb383977.aspx
3. IsNew はクラスのメンバーです

于 2010-04-28T19:03:28.320 に答える
1

標準の System.Web.UI.page ではなく PageBase のようなクラスのように、コード ビハインド ファイルがカスタム ページ クラスから継承されている場合、IsNew がそこにある可能性があり、おそらくページでそれを実装する必要があります... 、それはページクラスの拡張メソッドである可能性があり、それを含めるための名前空間参照がありません...

HTH。

于 2010-04-28T19:04:13.323 に答える
1

System.Web.UI.Pageクラスには絶対にIsNew()メソッドがないため、これは不可解です。これを取得する唯一の方法は、ページが基本ページから継承している場合、またはおそらくPage を拡張する拡張メソッドがある場合です。

Visual Studio でメソッドを右クリックして、定義を見つけることができますか?

于 2010-04-28T19:07:23.460 に答える