如何从 Javascript 访问 C# 类

本文关键字:访问 Javascript | 更新日期: 2023-09-27 17:56:13

我在 C# 中有一个名为 book 的类。在ASPX页面(可以访问book类)中,我有一个iframe元素。我想从iframe中的页面使用 Javascript 来调用book.write(),但我不确定我是否可以使用 Javascript 从iframe内的页面调用 C# 方法。

我该怎么做?

如何从 Javascript 访问 C# 类

尝试 AJAX,在你的 aspx.cs 文件中,添加这个

 [WebMethod]
public static string CallCSharpCode(){
    new book().write();
}

使用 AJAX 调用该方法,

 $.ajax({
    type : "POST",
    contentType : "application/json; charset=utf-8",
    url : "your aspx page.aspx/CallCSharpCode",
    dataType : "json",
    success : function (data) {
        var obj = data.d;
        //your code
    },
    error : function (result) {
        //your code
    }
 });

您必须使用 javascript 对带有一些参数的服务器进行回发,然后服务器端可以根据参数访问所需的类和函数。

c# = 服务器端,JavaScript = 客户端。您不能直接从另一个与一个交互。

你能做的最好的事情就是进行某种回发(通过按钮单击或其他方法),然后在你的书类中调用该方法。

若要从 c# 执行 JavaScript 代码,需要在呈现的页面中从回发编写 JavaScript 调用。

无法使用 JavaScript 访问 C# 类 - 永远不会,您不能这样做。您所能做的就是使用 <% ... %>,然后通过它调用您的类方法。

下面是一个示例:

你的类有一个这样的方法(请注意,你必须将该方法声明为public才能在页面上访问它):

public String Hello()
{
    return "Hello!";
}

然后你想在你的ASPX页面中通过这个来播放它:

<body>
    <form id="form1" runat="server">
        <input type="button" value="Test" onclick="alert('<%= Hello() %>')" />
    </form>
</body>