ASP.net javascript调用代码behing方法

ASP.net javascript call code behing method

本文关键字:behing 方法 代码 调用 net javascript ASP      更新时间:2024-01-06

我正在创建一个asp.net web应用程序,我想知道如何用javascript调用代码隐藏方法。下面的Java脚本显示了在数组中获取多个具有相同名称的文本框的值。

使用代码隐藏方法,我试图传递数组的值,但它不起作用。当我使用警告框时,它会显示文本框的值。

function JavaScriptFunction() {
        var arr = $("input[name='multiple[]']");
        $.each(arr, function (i, item) {
            alert($(item).val());             
        });
    }

当我在警报框方法之前调用代码隐藏方法时,它不会显示任何消息框。(测试代码隐藏方法)

function JavaScriptFunction() {
        var arr = $("input[name='multiple[]']");
        $.each(arr, function (i, item) {
            PageMethods.setemail("Paul Hayman");
            alert($(item).val());               
        });
    } 

这是我的测试代码隐藏方法。TextBox1我只是用来测试的。

  [WebMethod]
    public void setemail(string p)
    {
        TextBox1.Text = p;
    }

最后我导入了webService引用。

  using System.Web.Services;

这是我使用的按钮的网络表单

 <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="JavaScriptFunction()" OnClick="Button1_Click"  />

WebMethod不能直接与DOM交互。WebMethods不在正常页面模型的范围内。

事实上,WebMethod不再受MS支持,你不应该使用它。相反,如果你在.NET 4.5上,你可以创建一个Web API,并用AJAX调用它(jQuery有很好的辅助功能,我看到你标记了它)。Web API将返回字符串,然后您可以使用JavaScript设置文本框的文本。

Web API

public class TestController : ApiController
{
    public string GetHello(string name)
    {
         return String.Format("Hello, {0}!", name);
    }
}

然后jQuery AJAX代码:

$.ajax({
    url: '/api/test/GetHello?name=Nade',
    type: 'GET'
})
.success(function(output){
    $('#TextBox1').val(output);
});

如果您没有使用.NET 4.5,请升级!如果无法升级,那么您可以设置一个通用处理程序(.ashx)并写入响应。