🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

ASP.NET

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

Q&A

解決済

1回答

1720閲覧

コードを入力してフォーカスを離れたら、AJAXでデータベースに検索をかけて名前を取得、表示する

ucchi03.31

総合スコア3

C#

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

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

ASP.NET

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

0グッド

0クリップ

投稿2021/03/29 07:17

編集2021/03/29 09:28

前提・実現したいこと

初めまして。ASP.NETのことで質問があります。

今回、サイトを作る中でコードを入力してフォーカスが離れたら、コードに紐づく名前を取得し別のテキストボックスに表示したいと思っています。そこで、非同期通信であるAJAXを使用して試みているのですがうまくいきません。
AJAX自体を使うのが初めてで、使い方があっているのかもわかっていないような状況です。
分からないことを具体的に述べますと
①サーバー側のURLの指定方法
②引数の渡し方
③サーバー側の記述(どこに書けばいいのか、どのように書けばいいのか)
とほとんど理解できていません。
大変厚かましいのですが、同じ動きをするサンプルソースがあったら教えてほしいです。

発生している問題・エラーメッセージ

Failed to load resource: the server responded with a status of 404 (Not Found)

今は、「要求フィルター モジュールが、ファイル拡張子を拒否するように構成されています」とでてきます。

該当のソースコード

C#

1 [WebMethod] 2 public static string getTOKNAM() 3 { 4 DBManager DBMgr = new DBManager(); 5 HttpRequest Request = new HttpRequest("", "", ""); 6 string tokcod = Request.Form["tokcod"]; 7 string toknam = ""; 8 9 DataTable dt = new DataTable(); 10 StringBuilder sqlbuf = new StringBuilder(); 11 Dictionary<String, DBManager.Parameter> prmlist = new Dictionary<String, DBManager.Parameter>(); 12 13 dt.Columns.Add("TOKNAM", System.Type.GetType("System.String")); 14 15 // SQL作成 16 sqlbuf.AppendLine("SELECT TOKNAM "); 17 sqlbuf.AppendLine("FROM TOKMAST "); 18 sqlbuf.AppendLine("WHERE TOKCOD = @TOKCOD"); 19 20 prmlist.Add("@TOKCOD", new DBManager.Parameter(ParameterDirection.Input, "@TOKCOD", DbType.String)); 21 prmlist["@TOKCOD"].Value = tokcod; 22 23 DbDataReader rd = null; 24 // SQL発行 25 rd = DBMgr.ExecuteReader(sqlbuf.ToString(), prmlist); 26 dt.Load(rd); 27 28 rd.Close(); 29 if (dt.Rows.Count > 0) 30 { 31 // 取得データ格納 32 toknam = dt.Rows[0]["TOKNAM"].ToString(); 33 } 34 35 return toknam; 36 } 37

JavaScript

1 $(function () { 2 //得意先コードからフォーカスが離れた時 3 $("#txtTOKCOD").blur(function () { 4 var tokcod = $("#txtTOKCOD").val(); 5 $.ajax({ 6 async:true, // 非同期処理 7 //url: '../Class2.cs/getTOKNAM', 8 url: '../Class2.cs', 9 type: 'POST', 10 dataType: 'text', 11 cache:false, 12 data: "tokcod=" + tokcod 13 14 }).done(function (data) { 15 $("#txtTOKNAM").val(data.name); 16 }).fail(function () { 17 $("#txtTOKNAM").val(''); 18 }) 19 //$("#txtTOKNAM").val(tokcod) 20 }); 21 }); 22

試したこと

最初、サーバーサイドの処理の記述をHTMLページのC#側に記述していましたが、それをControllerクラスを継承したClassに作成しています。

自分が理解できていないため、質問も質問として成立しているのかわかりません。自分としては、サーバーサイドの記述をどこに何の項目で作成したのかが一番知りたいです。

拙い文章でとても分かりにくいと思いますがどうかよろしくお願いします。

追記

何を作っているか ASP.NET Web Forms です
開発環境 OS Windows10
Visual Studio 2013
.NET Framework 4.5
DB
エディション SQLServer 2017
バージョン 14.0.2037.2

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/03/29 08:59 編集

ASP.NET のタグをつけてください。ASP のタグは外してください。ASP はクラシック ASP のことで ASP.NET とは違います。 何を作っているか(ASP.NET Web Forms? MVC? その他?)と開発環境(OS, Visual Studio, .NET Framework のバージョン、DB は何かとそのバージョン・エディションなど)を書いてください。 url: '../Class2.cs', って何ですの? C# のクラスファイルならやってることがメチャクチャです。そこだけでなく、何もかも分かってないという感じに見えます。ここで Q&A して話が通じる程度に基本的な知識はお持ちですか?
ucchi03.31

2021/03/29 09:33

>ASP.NET のタグをつけてください。ASP のタグは外してください。ASP はクラシック ASP のことで... 編集しました >url: '../Class2.cs', って何ですの? C# のクラスファイルならやってることがメチャクチャです。... すいません。正直なところ自分自身何をやっているのか全く分かっていないません。Classに関しても、最初はサーバ側のソースに処理を書いていたのですが、参考にしたサイトでClassファイルに書かれたいていたのを参考にしました。勉強しなおしてきます。
退会済みユーザー

退会済みユーザー

2021/03/29 10:26

そもそもの目的は何なのでしょう? いまさら ASP.NET Web Forms アプリの勉強をしているとは思えないし、既存のアプリの保守・拡張とかですか? であれば、そのアプリを作った人(会社?)に相談するのが良さそうです。
ucchi03.31

2021/03/29 11:14

新規プロジェクトで使用しています
退会済みユーザー

退会済みユーザー

2021/03/29 11:26

> 新規プロジェクトで使用しています 「新規プロジェクト」とか言うからには業務として組織で対応していると想像していますが、であれば上司・先輩に聞きましょう。 もし、あなたが個人でやっているということであれば、ここのような場所で赤の他人に聞いて何とかしようとしても話が通じないので無理だと思います。なので自分は撤退します。悪しからず。
ucchi03.31

2021/03/29 13:14

すいません。ありがとうございました
guest

回答1

0

ベストアンサー

撤退すると言いながら何ですが・・・

昔書いた ASP.NET Web サービスとそれに jQuery ajax で要求を出してデータを取得する記事を思い出したので参考に以下に書いておきます。

以下の記事に紹介する簡単なアプリを動かせる程度の知識をまずつけてください。その記事に対する質問になら回答できます。質問のアプリをどう実装するかの話はそれからだと思います(今は無理)。

Web サービスの作り方は以下の記事のリンク先と「(1) Web サービス (097_jQueryAjaxAndWebService.asmx)」のコードを見てください。

ASP.NET AJAX と Web サービス
http://surferonwww.info/BlogEngine/post/2011/06/04/ASPNET-AJAX-and-Web-Service.aspx

VS2013 は持ってないので不明ですが VS2015/VS2019 の場合は以下のメニューから追加できます。

イメージ説明

Web サービスが実装できたらその URL をブラウザのアドレスバー入力して要求をかけると下の画像の応答が返ってくるはずなので確認してください。

イメージ説明

クライアント側の jQuery Ajax の実装は以下の記事を見てください。「注意」に書いたように jQuery v1.5 以降での実装に注意。

jQuery AJAX と Web サービス
http://surferonwww.info/BlogEngine/post/2011/06/04/jQuery-AJAX-and-Web-Service.aspx

ASP.NET Web Forms アプリの場合、Web サービスの他に WCF を使う選択肢もありますが、敷居が高すぎると思いますのでお勧めしません。どうしてもということなら以下の記事を見てください。

WCF と jQuery AJAX
http://surferonwww.info/BlogEngine/post/2015/10/15/wcf-and-jquery-ajax.aspx

投稿2021/03/30 01:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ucchi03.31

2021/03/30 03:26

回答ありがとうございます。 今回質問を投げかけてみて自分の知識不足が再度認識できたので、もう一度勉強しなおしたいと思います。 頂いた資料も参考にしたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問