需要在不使用asp.net中的ajax的情况下从Javascript调用方法后面的代码

时间:2014-06-24 13:22:45

标签: c# javascript jquery asp.net ajax

我需要在javascript中调用代码隐藏文件中的服务器端方法。是的,我知道ajax是实现这一目标的最佳方式。但我无法使用ajax bcoz我导出excel文件并在服务器端方法下载。在ajax请求中,我们无法下载/上传文件。所以请建议在客户端代码中调用服务器端方法的任何其他方法。我也可以使用Web服务实现这一目标。但我需要代码隐藏文件的功能。我需要像MVC表单这样的功能,在mvc形式中我们能够提供控件和动作名称并使表单提交。

1 个答案:

答案 0 :(得分:3)

在页面上添加以下HTML:

<asp:ScriptManager ID='ScriptManager1' runat='server' EnablePageMethods='true' />
<asp:Button ID=”btnSave” runat=”server” Text=”Save” OnClientClick=”return CodeBehindMethodCall();” />

现在时间调整我们的代码,以便我们可以从JavaScript调用它,我们需要使用System.Web.Services,所以将它添加到我们的代码隐藏文件

using System.Web.Services;

无论我们需要从JavaScript调用什么方法,都要将WebMethod属性添加到该方法,并且可以通过javaScript轻松调用

[WebMethod]
public String ConvertDataTabletoString()
{
    // your code 
}

现在我们将从JavaScript调用ConvertDataTabletoString,因此将以下JavaScript添加到页面中:

function CodeBehindMethodCall()
{
    pageName.ConvertDataTabletoString();
}

正如您所看到的,我们没有使用Web服务,但是我们将方法更改为Web方法,因此可以从JavaScript调用它,但是如果不将方法转换为Web方法,我们就无法从JavaScript调用任何代码隐藏方法。

这是它的完成方式。