javascript - 如何从 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);
在哪里:
- myPage 是一个 Page 变量,用于获取网页的名称。由于我使用了一些命令(例如更改页面标题),因此正确使用了此变量,并且它确实按预期工作。
- text1、text2、text3 是从数据库表中获取其值的三个字符串。还验证了它是否适用于一些测试命令。
问题是上面显示的命令不起作用。我尝试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;
提前致谢!
解决方案
从您使用 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());
});
推荐阅读
- c# - Blazor - 私有组件
- haskell - xmonad `tags <- asks (workspaces . config)` 魔法——我该如何解析它?
- python - 尝试让 PyQt5 与 Pycharm 一起使用时出现错误和问题
- google-sheets - 在 Google 表格中的工作表中对相同的单元格求和
- php - Post__not_in 在最近的帖子小部件中被忽略
- python - 高密度图的链接数据选择点被遮挡
- flutter - Flutter HTTP GET 请求根本没有命中后端端点
- vb.net - 电报频道帖子无法在 cefsharp 网络浏览器中打开
- javascript - 从 vuex 中的 firebase 读取数据
- git - 如何使用我忘记提交的文件返回分支?