首页 > 解决方案 > 如何从 ac# 脚本调用 js 脚本

问题描述

大家好!我正在做一个学校项目,我需要从我的数据库中的一个表中为段落元素提供一些 innerHTML,我尝试使用一些 javascript 来完成它,但是在 c# 中有连接脚本我现在需要从内部调用 JavaScript说c#脚本。我尝试使用以下命令:

if(!myPage.ClientScript.IsStartupScriptRegistered("CallMyFunction"))
        myPage.ClientScript.RegisterStartupScript(myPage.GetType(), "CallMyFunction", "<script language='javascript'>TypeText(" + myPage + "," + text1 + "," + text2 + "," + text3 + ")</script>", false);

在哪里:

问题是上面显示的命令不起作用。我尝试alert('test')RegisterStartupScript. 所以我想知道是否有人可以告诉我上述命令是否错误或从 ac# 函数调用 JavaScript 函数的另一种方式。而且,如果可以的话

PS我不确定使用上述命令的必要目录是什么。这些是我现在正在使用的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Data;
using System.IO;
using System.Data.SqlClient;

提前致谢!

标签: javascriptc#htmlsqlasp.net

解决方案


从您使用 RegisterStartupScript 的帖子中看不出您是否使用过 Web 表单?还是剃须刀页面?

无论您可以使用 SignalR 从服务器端代码中的任何位置触发客户端,以实现此调用任务,如下所示:

public async Task SendSignalToClients()
{
    await Clients.All.SendAsync("triggerclients");
}

并像这样实现客户端:

var connection = new signalR.HubConnectionBuilder().withUrl("/signalrhub").build();

connection.on("triggerclients", function (user, message) {
    alert('test')
});

connection.start().then(function () {}).catch(function (err) {
    return console.error(err.toString());
});

推荐阅读