【问题标题】:How To call a js script from a c# script如何从 c# 脚本调用 js 脚本
【发布时间】:2021-06-05 13:31:34
【问题描述】:

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

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 是三个字符串,它们从数据库表中获取它们的值。还验证了它是否适用于一些测试命令。

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

P.S. 我不确定使用上述命令所需的目录是什么。这些是我现在正在使用的:

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;

提前致谢!

【问题讨论】:

标签: javascript c# html sql asp.net


【解决方案1】:

从您使用 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());
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2014-06-25
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    相关资源
    最近更新 更多