前提・実現したいこと
初めまして。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
回答1件
あなたの回答
tips
プレビュー