我有一个控制器:
<asp:Button OnClick="MyFunction" runat="server" />
我希望能够在没有页面重新加载的情况下调用MyFunction。这是可能的ajax或其他什么?如果是这样,我该怎么做?
答案 0 :(得分:1)
查看ASP.Net教学视频。应该涵盖大部分(如果不是全部)问题。
答案 1 :(得分:1)
一种选择是使用页面方法。
在页面中添加一个静态方法,使用WebMethod
属性修饰:
[WebMethod]
public static void MyMethod(string someParam)
{
}
在ScriptManager
中启用页面方法:
<asp:ScriptManager EnablePageMethods="True" ... />
然后您可以使用JavaScript(可以连接到按钮的OnClientClick事件)从客户端调用它:
PageMethods.MyMethod("some value", successCallback, errorCallback);
有关详细信息,请阅读此页面上的“在ASP.NET网页中调用静态方法”部分: http://msdn.microsoft.com/en-us/library/bb398998.aspx
答案 2 :(得分:1)
您必须下载Ajax Extensions并进行安装。
执行此操作后,请<asp:Button OnClick="MyFunction" runat="server" />
以下
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Your Text" OnClick="MyFunction" />
</ContentTemplate>
</asp:UpdatePanel>
MyFunction是一个c#/ vb函数,写在你的页面代码后面,而不是javascript函数。我指定了这个,因为我看到人们在这个问题上犯了很多错误。 OnClick属性用于c#/ vb函数,OnClientClick用于javascript函数。
有关如何将ajax功能添加到ASP .NET页面的更多信息,请转到here
答案 3 :(得分:0)
最简单的方法是使用UpdatePanel
来扭曲代码如果你google it,有很多例子。
答案 4 :(得分:0)
是的,您可以使用此功能使用Asp.net Ajax进行客户端网络回调,您可以在方法后面调用代码而无需重新加载页面。要使用此方法,您应该将方法编写为静态类型。
您可以参考此视频
http://www.asp.net/ajax/videos/how-do-i-make-client-side-network-callbacks-with-aspnet-ajax
您还有一个使用jQuery Ajax的选项。
答案 5 :(得分:0)
<asp:Button runat="server" ID="btnShowModal" Text="Show"
OnClick="btnShowModal_Click" />
<asp:Button runat="server" ID="HiddenForModal" style="display: none" />
<ajaxToolKit:ModalPopupExtender ID="Modal1" runat="server"
TargetControlID="HiddenForModal" PopupControlID="PopupPanel" />......it may help u