aspx ページ ファイルの 1 つにある次の webmethod を呼び出そうとしています。
[WebMethod]
public static string GetReportDetails()
{
var reportDetails = DataAccess.Database().GetBusinessInterestReportDetails(HttpContext.Current.User.Identity.Name);
var json = BusinessInterestReport.GetJson(reportDetails);
return json;
}
そして、これは私がwebmethodを呼び出すために使用しているjavascriptです:
$.ajax({
type: 'POST',
url: 'SummaryReport.aspx/GetReportDetails',
dataType: 'json',
success: function (data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert('An error has occured: ' + errorThrown);
}
});
この ajax 呼び出しを行う JavaScript:
$('.reportOption').click(function (e) {
$.ajax({
type: 'POST',
url: 'SummaryReport.aspx/GetReportDetails',
dataType: 'json',
success: function (data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert('An error has occured: ' + errorThrown);
}
});
})
構成はScriptModule
既にweb.config
. webmethod でブレーク ポイントに到達することさえなく、ページ全体のコンテンツが返されます。これの原因は何ですか?
編集:Chromeのデバッグコンソールを使用すると、次のエラーが見つかりました:
[ArgumentException: Unknown web method GetReportDetails.
Parameter name: methodName]
System.Web.Script.Services.WebServiceData.GetMethodData(String methodName) +516665
System.Web.Handlers.ScriptModule.OnPostAcquireRequestState(Object sender, EventArgs eventArgs) +168
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
メソッド名を取得しないのはなぜですか? を使用して PageMethods も有効にしました<asp:ScriptManager ID="smMain" runat="server" EnablePageMethods="true" />
PS iFrame 内から呼び出していることに気付きました。これは問題と関係がありますか?