私はWeb メソッドに関するこの記事のコードを見ていて、それを実装しようとしました。記事は設計どおりに機能しますが、HTML ボタンを asp:button に交換すると、異なる結果が得られます。
背後にあるコード:
[WebMethod]
public static string GetCurrentDate()
{
return DateTime.Now.ToString();
}
Aspx ページ:
js:
<script type="text/javascript">
function UpdateTime() {
$get('Label6').innerHTML = PageMethods.GetCurrentDate(OnSucceeded,
OnFailed);
}
function OnSucceeded(result, userContext, methodName) {
$get('Label6').innerHTML = result;
}
function OnFailed(error, userContext, methodName) {
$get('Label6').innerHTML = "An error occured.";
}
</script>
およびその他のマークアップ
<form id="form1" runat="server">
<asp:ScriptManager EnablePageMethods="true"
ID="ScriptManager2" runat="server">
</asp:ScriptManager>
<div id="usingWebMethods">
<asp:Label runat="server"
Text="Using WebMethods"
ID="Label5" />
<br />
<asp:Label
runat="server"
Text="Web Method Update!"
ID="Label6" />
<asp:Button ID="Button3"
runat="server"
Text="Postback Update"
OnClientClick="UpdateTime();"
UseSubmitBehavior="False" />
<input type="button"
id="Button4"
value="Web Method Update"
onclick="UpdateTime();" />
</div>
</form>
ボタンで2つのことに気づきました。ボタンはエラーが発生したことを返し、ラベルが変更されてもビューステートは更新されません。
これら 2 つの問題が発生する理由と、それらを解決するにはどうすればよいですか?