你如何将变量从 c# 传递给 javascript?

IT技术 c# javascript variables
2021-03-15 11:10:58

希望将变量从 c# 传递到 javascript 以使用一些 jquery 代码。传递双精度、整数、字符串、数组。有谁知道如何做到这一点?

例如,如果我在 c# 中有这个代码片段:

string blah = "this is a blah string";

我想将它传递给 javascript,以便我可以在 jquery 中使用鼠标悬停事件:

$('#myDiv').mouseover(function(){ //do something with my 'blah' string });
4个回答

没关系,我想我想通了。假设上面的代码,你可以用javascript编写:

<script type="text/javascript"> var JavascriptBlah = '<%=blah%>'</script>

这会将 c# 中的 blah 传递给客户端的 JavascriptBlah。然后你可以在客户端进行操作。

有谁知道使用“<%=VariableName%>,如果变量“blah”被分配一个带有“private async Task Foo()”的值是否有效我在一个私有异步任务中分配了它,我想知道这是否是它对我不起作用的原因。
2021-05-09 11:10:58
这样做的缺点是,如果“blah”中有一个单引号,你就有麻烦了。在传递之前先将字符串转换为 JSON 是有意义的。
2021-05-10 11:10:58

您可以在后面的代码和会话中使用公共属性。这是一个使用可从 Javascript 函数读取的公共属性的示例。

前端:

function IsAgentInProgram()
{
    var optStatus = "<%=AgentOptInStatus%>";

    if (optStatus == "True")
        alert("You are opted in!");
    else
        alert ("You are opted OUT");
}

背后的代码:

public bool AgentOptInStatus;

private void Page_Load(object sender, System.EventArgs e)
{
    this.AgentOptInStatus = true;

}

我最近使用这个ToJson()扩展方法和Page.RegisterClientScriptBlock方法来传递一个多级映射对象,该对象填充三级级联下拉列表。

警告 Page.RegisterClientScriptBlock 自Framework v.4.0起已过时现在推荐使用ClientScriptManager.RegisterClientScriptBlock方法。
2021-04-21 11:10:58
不确定你在这里的意思,但你能看到上面编辑过的部分吗?
2021-04-26 11:10:58

您可以使用 asp:HiddenField 变量在代码隐藏和 js 之间传递值。

stackoverflow.com/questions/252222/...该链接有一个示例代码,您可以通过这种方式访问​​隐藏字段的值,无论是代码隐藏还是 javascript
2021-04-29 11:10:58