ASP.NET 服务器未将页面重新发送到 C# WebMethod上的客户端

ASP.NET Server not resending page to client on C# WebMethod

本文关键字:WebMethod 客户端 新发送 服务器 NET ASP      更新时间:2023-09-26

我正在使用 RadioButtonList 的 ASP 控件,如下所示,以使用所选单选按钮的值来执行一些操作。调用代码完成后,服务器似乎将页面重新发送回客户端,因为客户端能够在我所做的任何修改的"新"页面和上一页之间导航。

<asp:RadioButtonList ID="RadioListID" runat="server" AutoPostBack="true"       
                             OnSelectedIndexChanged="RadioListID_SelectedIndexChanged">
       <asp:ListItem id="OneDayRadioBtn" runat="server" Value="1-Day" />
       <asp:ListItem id="TwoDayRadioBtn" runat="server" Value="2-Day" />
 </asp:RadioButtonList>

我不得不切换到常规无线电输入并以这种方式实现它们:

<body> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"  
 EnablePartialRendering="true" />
      <!-- Other Stuff -->
<input type="radio" name="radioList" checked onchange="OneDayChecked()"> 1-Day
<input type="radio" name="radioList" onchange="ThreeDayChecked()"> 3-Days

<script type="text/javascript">
        function OneDayChecked() {
            alert("We do get inside!");
            PageMethods.setTimeFilter(1);
        }

。返回服务器

[WebMethod]
public static void setTimeFilter(int filterIndex)
{
     //my code to change text on the client aspx page
}

执行 WebMethod 后,客户端页面保持不变。如何让服务器将页面重新发送到客户端?或者我可以做些什么来更新客户端?我已经尝试通过元数据刷新客户端:<meta http-equiv="refresh" content="10"> .我猜有一个服务器端解决方案,但不确定

你在这里做的是对服务器的AJAX(异步)调用。这不会更新您的页面,这正是此处所期望的。Ajax 调用在后台完成,它们不会影响客户端.
如果你想用页面方法做到这一点,那么你需要从中返回一些东西,在你的Javascript代码中捕获该结果,然后在客户端操作html。