c# - 从后端(AJAX)在页面中运行 JavaScript?

标签 c# javascript asp.net

我刚开始将 JavaScript 集成到网站中,但我的网站中经常需要它。

这是一个例子: 假设我有这个功能:

showAlert()

假设我有:

<div id="some_div">

</div>

有人可以给我提供一些可以做到这一点的例子吗: 如果我有一个按钮并且用户单击它,这应该在后端引发一个事件并调用我的 C# 文件中的某些方法。然后我的 C# 文件应该能够调用前端的其他一些 javascript 方法,该方法将调用 showAlert() 并在 div 中显示警报。

这就是我似乎找不到任何信息。

与服务器之间传递信息的基本思想。对此的任何帮助将不胜感激。

谢谢

最佳答案

最好的选择是使用像 jquery 这样的框架,然后绑定(bind)到按钮,调用服务并处理响应。下面是一个简单的示例。

$(document).ready(function()
    $('#Button1').bind('click', function () { 
        // This grabs the page you are in so that you can call it correctly
        var pagePath = window.location.pathname;  
        var testId = $("#some_div").val();
        var url = pagePath + "/TestService";          
        $.post(url, { id: testId },
            function (data) {
                showAlert(data);
            }
        });
    };
});

首先,您需要确保文档在某个时刻已准备就绪。绑定(bind)允许在文档加载时绑定(bind)按钮。然后,通过单击它,您可以执行获取 testId 的匿名函数,调用您的服务,并在成功回调中处理数据响应。

希望这能让您朝着正确的方向开始!

编辑:添加后端网络表单“服务”暴露

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e) 
    {

    }

    [WebMethod]
    public static string TestService(string id) 
    {
        var string = DBCollection.FirstOrDefault(x => x.id == id); // Or whatever you want to return the data
        return "You called me on " + DateTime.Now.ToString() + "with " + string;
    }
}

这将允许您调用页面上公开的“WebMethod”。有关这方面的更多帮助,请参阅以下链接。

http://www.tugberkugurlu.com/archive/asp-net-web-forms---calling-web-service-page-methods-using-jquery

编辑:在网络表单中执行此类方法时的其他注意事项。 Calling a webmethod with jquery in asp.net webforms

关于c# - 从后端(AJAX)在页面中运行 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14628317/

相关文章:

c# - 使用 Katana OpenID Connect 中间件解决 OnSendingHeaders 死锁

javascript - pretty-print 在推特 Bootstrap 中不起作用

javascript - Yii Ajax 在 LimeSurvey 插件环境中返回整个网页。为什么?

asp.net - 选择性验证

asp.net - 如何使 ASP.NET HTML 代码对客户端(用户)不可见

c# - TripleDES 16 字节不工作

c# - C# 中的高性能 TCP 服务器

c# - LINQ执行时间

javascript - 拉斐尔对象不会沿着路径正确地设置动画

c# - 无法 checkin ASP .Net 5 项目,因为它缺少 global.asax