我正在使用 VisualStudio 2008 并在 ASPX 页面上有一个方法,我试图使用 jQuery 使用 javascript 调用,如下所示。我只是在获取页面的 HTML。不调用 web 方法。有趣的是,如果我将 webMethod 的名称更改为在 javascript 中调用,我仍然会取回 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
});
});