C# 需要从Javascript调用代码隐藏方法,而无需在asp.net中使用ajax

C# 需要从Javascript调用代码隐藏方法,而无需在asp.net中使用ajax,c#,javascript,jquery,asp.net,ajax,C#,Javascript,Jquery,Asp.net,Ajax,我需要从javascript调用代码隐藏文件中的服务器端方法。是的,我知道ajax是实现这一点的最佳方式。但我不能使用ajax bcoz,因为我导出了excel文件并使用服务器端方法下载。在ajax请求中,我们无法下载/上载文件。所以,请建议从客户端调用代码隐藏中的服务器端方法的任何其他方法。我还可以使用web服务实现这一点。但我需要代码隐藏文件中的功能。我需要类似MVC表单的功能,在MVC表单中,我们可以提供控件和操作名称,并使表单提交。在页面上添加以下HTML: <asp:Script

我需要从javascript调用代码隐藏文件中的服务器端方法。是的,我知道ajax是实现这一点的最佳方式。但我不能使用ajax bcoz,因为我导出了excel文件并使用服务器端方法下载。在ajax请求中,我们无法下载/上载文件。所以,请建议从客户端调用代码隐藏中的服务器端方法的任何其他方法。我还可以使用web服务实现这一点。但我需要代码隐藏文件中的功能。我需要类似MVC表单的功能,在MVC表单中,我们可以提供控件和操作名称,并使表单提交。

在页面上添加以下HTML:

<asp:ScriptManager ID='ScriptManager1' runat='server' EnablePageMethods='true' />
<asp:Button ID=”btnSave” runat=”server” Text=”Save” OnClientClick=”return CodeBehindMethodCall();” />
无论我们需要从JavaScript调用什么方法,将WebMethodattribute添加到该方法中,JavaScript都可以轻松调用该方法

[WebMethod]
public String ConvertDataTabletoString()
{
    // your code 
}
现在我们将从JavaScript调用ConvertDataTabletoString,因此将以下JavaScript添加到页面:

function CodeBehindMethodCall()
{
    pageName.ConvertDataTabletoString();
}
正如您所看到的,我们并没有使用web服务,但我们将一个方法更改为web方法,以便可以从JavaScript调用它,但在不将方法转换为web方法的情况下,我们不能从JavaScript调用任何代码隐藏方法


这就是它的工作方式。

什么是“bcoz”以及您的shift键起作用了吗?因此,请调用隐藏的iframe。@Kurnapatil tanks作为您的答案,是的,当我将方法声明为静态时,它起作用了。当我声明非静态方法时,它不起作用。但当我将方法声明为静态时,我无法使用HttpResponse,所以无法下载该文件。这个场景还有其他解决方案吗?
function CodeBehindMethodCall()
{
    pageName.ConvertDataTabletoString();
}