- PR -

クラスの参照ができていないのでしょうか?

投稿者投稿内容
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-01-23 16:27
引用:

どっとねっとふぁんさんの書き込み (2008-01-23 16:09) より:

#「Webサイト」だとどうすればいいかなぁ。。。
 ちょっと解決できてない。



同じファイルに置いた場合は大丈夫でした(当たり前と言われそうですが)
コード:
namespace test
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            test();
        }
    }

    partial class Default
    {
        public void test()
        {
            Label1.Text = "123";
        }
    }
}



1つのaspxファイルから複数のファイルをコードビハインドに指定する方法があれば、
もしかすると可能なのでしょうか。
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2008-01-23 16:57
ああ、そういうことだったんですね!たしかにaspxファイルからは、CodeFileは1種類しか設定できません。1つにまとめてしまえば動くことは確認できましたので、ではあきらめて1つのファイルで作ってしまうことにします……。

検証までしていただいて、ありがとうございました。大変参考になりました。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-01-23 17:02
「Webアプリケーション」であれば、別ファイル(ファイル名はたとえばClass1.csとかでも良い)にメソッドの定義を記述することは可能ですよ。
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2008-01-23 18:12
ご回答ありがとうございます。

ということは、私が今作っているのはWEBアプリケーションじゃないってことなんですね……。ちょっとトピ違いになってしまいますが、「WEBアプリケーション」と「WEBサイト」の違いはどこにあるんでしょうか?
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-01-23 18:17
いえ、

> 「新規作成」>「プロジェクト」で、「ASP.NET WEBアプリケーション」

この形で作られているのであればWebアプリケーションプロジェクトですね。
クラスファイルの追加の仕方とか、どこかで間違っていると思われます。
どのような手順で作業を行おうとしているか、細かく書いてみませんか?
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2008-01-23 19:56
Wingardさんのプロジェクトの作り方だとWebアプリケーションになりますね。
App_Dataって名前のディレクトリとか出来て無いでしょ?

クラスビューを見るとどうなってます?(「表示」メニューの中にあります)
Defaultクラスひとつだけが定義されていますか?

問題のある場所を絞り込みましょうか。
rainさんのように新しいプロジェクトを作ってみてください。
もしそれでうまくいくならWingardさんが作っていたプログラムの問題ということになります。
新しく作ってもやっぱり駄目なら、Wingardさんの開発環境そのものの問題ということになります。
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2008-01-24 17:06
お世話になっています。長いことお手間をとらせてしまって、本当にありがとうございます。返答が遅くなりまして申し訳ありません。


どっとねっとふぁんさん、一郎さんのご指摘を受け、新しくプロジェクトを作り直してみました。

まず、「新規作成」>「プロジェクト」>「ASP.NET WEBアプリケーション」 でプロジェクト名を「testProgram」にして作成。
次にソリューションエクスプローラーからそのプロジェクト名を右クリックし、「追加」>「新しい項目」を選択。
「クラス」を選択し、ファイル名を「file1.cs」に変更して追加。
同様にfile2.csも追加。
2つのファイルにusing処理を書き込んで、最初の質問にあるコードをコピー。

これでビルドをしましたが、やはり結果は同じでした。エラーも警告も、メッセージすら0件で、ビルドは問題なく完了してしまいます。

また、クラスビューを見てみても、Defaultクラスの中に全て入っており、おかしな点には気がつきませんでした。


また、ここにあるようなこともやってみましたが、変わりませんでした。
http://hpcgi1.nifty.com/MADIA/vbnet/wwwlng.cgi?print+200710/07100019.txt
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-01-24 17:20
引用:

Wingardさんの書き込み (2008-01-24 17:06) より:

まず、「新規作成」>「プロジェクト」>「ASP.NET WEBアプリケーション」 でプロジェクト名を「testProgram」にして作成。
次にソリューションエクスプローラーからそのプロジェクト名を右クリックし、「追加」>「新しい項目」を選択。
「クラス」を選択し、ファイル名を「file1.cs」に変更して追加。
同様にfile2.csも追加。
2つのファイルにusing処理を書き込んで、最初の質問にあるコードをコピー。



私の環境で同じことをやると、ビルド時に
「名前 'labelTest'は現在のコンテキスト内に存在しません。」
というエラーがfile2.csで発生してビルドできませんでした。

以下のファイルの内容はどうなっているでしょうか?
・Default.aspxファイル
・Default.aspx.csファイル
・Default.aspx.designer.csファイル(これは必ず存在するのか自信なし)

スキルアップ/キャリアアップ(JOB@IT)