VS2013 で新しい WebForms アプリケーションを作成します。何も変更せず、シンプルなページを作成しました。ユーザーがボタンをクリックしたときに、クライアント側でこのテーブルをロードしたい
<table id="tblHelpRow">
<thead>
<tr class="title">
<th>F2
</th>
<th>F3
</th>
</tr>
</thead>
<tbody id="helpRowBody">
<%=MyRow %>
</tbody>
</table>
<asp:LinkButton ID="lnkEdit" runat="server" onclick="fnEdit();" />
これは私のスクリプトコードです:
function fnEdit() {
BindGridView();
};
function BindGridView() {
rowid = {rowID:2};
$.ajax({
type: "POST",
url: "Default.aspx/GetRow",
contentType: "application/json; charset=utf-8",
data: param,
dataType: "json",
success: function (data) {
alert(data);
}
});
}
コード ビハインドに、結果をパブリック プロパティに格納する WebMethod があります。DataSource はセッションに保存しますが、rowID は jquery から渡す必要があります。
[WebMethod]
public static string GetRow(int rowID)
{
DataTable dt = (DataTable)HttpContext.Current.Session["SourceData"];
MyRow = "<tr>" +
"<td>" + dt.Rows[rowID]["F2"].ToString() + "</td>" +
"<td>" + dt.Rows[rowID]["F3"].ToString() + "</td>" +
"</tr>";
return "done";
}
しかし、私は何の結果も得られません。ブレークポイントを成功させたときに、「認証に失敗しました」というエラーが表示され、この Web メソッドは実行されませんでした。どうしたの?私はant認証設定を変更しませんでした。