私は VisualStudio 2008 を使用しており、以下に示すように、jQuery を使用して JavaScript で呼び出そうとする ASPX ページにメソッドがあります。ページの HTML を取得しています。Web メソッドは呼び出されません。興味深いことに、javascript で呼び出す webMethod の名前を変更しても、HTML が返されます。webMethod が見つからないというエラーではありません。
データ引数を "{ 'dummy':0 }" に変更しようとしましたが、それは役に立ちません。
新しい VS 2010 アプリでは問題なくこの戦略を使用しましたが、ページを追加している VS 2008 の既存のアプリでは機能しないようです。(古いアプリにひねりを加えようとしています)firebug が firefox で私に言っていることを調べましたが、すべてが正しいように見えます。
どんな助けでも大歓迎です。
C# WebMethod 宣言:
[WebMethod()]
public static string getQuestionnaires(int dummy)
{
System.Diagnostics.Debug.WriteLine("getQuestionnaires called");
SqlCommand command = new SqlCommand();
command.CommandText = "dbo.ws_GetPSQuestionnaire";
command.CommandType = CommandType.StoredProcedure;
DataTable dtQuestionnairesRaw = Utilities.ReturnDataSet(command).Tables[0];
DataTable dtQuestionnaires = new DataTable();
dtQuestionnaires.Columns.Add(new DataColumn("questionnaireID", typeof(int)));
dtQuestionnaires.Columns.Add(new DataColumn("name"));
foreach (DataRow dr in dtQuestionnairesRaw.Rows)
{
DataRow drNew = dtQuestionnaires.NewRow();
drNew["questionnaireID"] = dr["questionnaireID"];
drNew["name"] = Utilities.RemoveHTMLTags(dr["name"].ToString());
dtQuestionnaires.Rows.Add(drNew);
}
dtQuestionnaires.AcceptChanges();
return (JsonConvert.SerializeObject(dtQuestionnaires, Formatting.Indented));
}
このjavascriptで呼び出しています。私のエラー関数は常に呼び出されます。
$(document).ready(function() {
var request = $.ajax({
type: "POST",
url: "/crs4/admin/editPSQuestionnaire.aspx/getQuestionnaires",
contentType: "application/json; charset=utf-8",
data: "{ 'dummy':'0' }",
dataType: "json",
success: populateQuestionnaires,
error: AjaxFailed
});
});