javascript - ASP.net javascript调用代码隐藏方法

标签 javascript c# jquery asp.net

我正在创建一个 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;

这是我用 webforms 做的按钮

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

最佳答案

WebMethod 不能直接与 DOM 交互。 WebMethods 超出了普通页面模型的范围。

其实WebMethod就是no longer supported由 MS,你不应该使用它。相反,如果您使用的是 .NET 4.5,则可以创建 Web API并使用 AJAX 调用它(jQuery 对此有很好的辅助函数,我看到你标记了它)。 Web API 将返回字符串,然后您可以使用 JavaScript 设置文本框的文本。

网络应用程序接口(interface)

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) 并写入响应。

关于javascript - ASP.net javascript调用代码隐藏方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28563755/

相关文章:

javascript - TFS-DASHBOARD - 添加放大按钮小部件

javascript - 如何将字符串推送到 typescript 数组?

c# - 在 C# 中使用正则表达式格式化字符串

c# - 处理对短信的异常回复

jquery根据给定的数字添加多个表列

Javascript 添加两个整数变量?

javascript - 使 div 在 5 秒后消失,验证错误消息

javascript - 我想在 javascript 语法中包含 php 语法

javascript - 单击自定义 HTML 按钮时无法关闭 Sweet Alert 2 模式

c# - 性能和线程改进 ASP.Net MVC