質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

1662閲覧

ASP.NET(C#)について

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2017/09/02 03:15

index.aspx

<%@ Page language="C#" codebehind="index.aspx.cs" Inherits="index"%> <!DOCTYPE html> <html lang="ja"> <head> <title>ASPのテスト</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="css/style.css" rel="stylesheet"> </head> <body> </body> </html>

index.aspx.cs

public class index { public void test() { 処理 } }

現在この様な形でASPで書いたファイルがあるのですが、
indexクラスを呼び出そうとした所(inherits)でエラーが発生します。
どうすればindexクラスを呼び出せるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

現在この様な形でASPで書いたファイルがあるのですが、

ASP ではなく、ASP.NET ですよね? (ASP というとクラシック ASP と思われますよ)

indexクラスを呼び出そうとした所(inherits)でエラーが発生します。
どうすればindexクラスを呼び出せるのでしょうか?

呼び出すというのはどういう意味でしょうか? 普通の意味で言う「呼び出す」という操作は必要はないのですが・・・

ASP.NET Web Forms アプリを Web アプリケーションプロジェクトで作っていると理解していますが(他に Web サイトプロジェクトというものもあります)、Visual Studio で[追加(D)]⇒[新しい項目(W)...]で出てくるダイアログで「Web フォーム」を選んで、index.aspx という名前で追加すると、Page ← index ← index.aspx という継承関係を持つファイルが自動生成されます。(正確には index.aspx ではなくそれから生成されたクラス)

具体的には、Visual Studio Community 2015 の場合、以下のようになります。(名前空間の WebFormsApp はプロジェクト名と同じ。もう一つ、index.aspx.designer.cs というファイルも自動生成されますがここでは割愛)

index.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebFormsApp { public partial class index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } }

index.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebFormsApp.index" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>

継承については自動的にそのようなコードが生成されますので、質問者さんは何もする必要はないです。

質問者さんの言う「呼び出す」は意味不明ですが、上の例で言う index クラスを初期化するという意味だとすると、それは ASP.NET が自動的に行ってくれますので、これも質問者さんは何もする必要はないです。

#何故、上記のような継承関係になっているかとか、index.aspx.designer.cs とは何かについては、本題とは関係ないので説明は割愛します。

投稿2017/09/02 04:45

編集2017/09/02 04:50
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/02 06:25

ご回答有難う御座います! ASP.NETと記載しておらず失礼致しました。。。 又、諸学者の為言葉足らずで申し訳御座いません。。。 ご教示頂いたコードに書き換え、ソースをブラウザで表示しようと した所パーサーエラー:パーサー エラー メッセージ: 型 'WebFormsApp.index' を読み込めませんでした。 のエラーが出てしまいます。
退会済みユーザー

退会済みユーザー

2017/09/02 06:50

> ご教示頂いたコードに書き換え、 自力で書かないで、Visual Studio の自動生成の機能を使ってください。上にも書きましたが、Visual Studio で[追加(D)]⇒[新しい項目(W)...]で出てくるダイアログで「Web フォーム」を選んで、index.aspx という名前で追加です。 WebFormsApp という名前空間名は、上にも書きましたがプロジェクト名と同じになります。質問者さんの作ったプロジェクトの名前は違うのでは? 違うから「読み込めませんでした」という結果になるのだと思います。 回答をよく読んで理解してください。全部回答に書いてあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問