通过 Java 脚本设置 ASP 变量

setting an asp variable via java script

提问人:boaz 提问时间:1/29/2019 更新时间:1/30/2019 访问量:78

问:

我有一个aspx.cs页面:

public partial class multiIndex : System.Web.UI.Page
{

    public string Link = "";
    public string board = "";
    public string against = "";

    protected void Page_Load(object sender, EventArgs e)
    {
    }
}

和一个 ASPX 页面,其中包含一个脚本和以下代码:

<script>
var newBoard = "<%=board%>";
<%UpdateDataBase(board)%>
</script>

现在这正在工作,但我不能反向使用它:

var board = "something";
<%board=%>= board;
<%UpdateDataBase(board)%>

那么,如果没有 PHP 或任何其他像 node.js 这样的图书馆,我该如何做这样的事情,我想保持简单

JavaScript MySQL asp.net 客户端

评论

0赞 Djuro 1/29/2019
你需要区分什么是asp页面,什么是javascript。你提到了 php 和 node.js所以我假设你是乞丐,因为你正在混合术语。Asp是在服务器上创建并发送给用户的页面,javascript在浏览器上执行。呈现页面时,您的变量不存在。为了更深入地理解,您需要了解 asp lIfecycle 的工作原理。要使用服务器 sode 变量,您需要使用 session 或 cookie 变量,并且可以通过回发或通过 javascript (ajax) 更改状态
0赞 boaz 1/29/2019
我有会话变量,但我不明白如何更改它,你能给我看一些示例代码吗?
0赞 Djuro 1/29/2019
您可以使用 HttpContext.Current.Session 访问会话对象。但是您需要在服务器代码smth.aspx.cs上执行此操作,而不是在smth.aspx上执行此操作。您可以使用按钮 onclick 事件设置该变量,并将值设置为 HttpContext.Current.Session[“varName”] = textboxId.Text;请注意处理 null 值
0赞 boaz 1/29/2019
我不想添加按钮,因为我正在制作一个在线纸牌游戏,我已经完成了所有接受传递此变量以更新板子的事情,难道没有办法从服务器(asp.cs)请求它并设置一个 Java 脚本变量等于它?
0赞 Djuro 1/29/2019
然后用javascript做所有事情。

答:

1赞 Martin 1/29/2019 #1

我猜你对这里的执行点(无论是服务器还是浏览器)感到困惑。“.aspx”页面由服务器呈现,它将能够使用您编写的逻辑编辑页面的内容。因此,当您有这样的代码时,Server 会在呈现页面之前评估 的值并分配常量值。您可以使用浏览器中的开发人员工具进行检查。var newBoard = "<%=board%>";boardnewBoard

但是,如果要在“Board”中设置“newBoard”的值,这在Javascript中是不可能的,因为它是在浏览器中执行的,并且变量“Board”仅在适当的程序执行范围内的Server中才有意义。如果您打算进行一些服务器端处理,则可以使用对服务器的 API 调用来执行必要的处理。

0赞 boaz 1/30/2019 #2

要设置和获取 asp 变量(服务器端),您只需要在 page.aspx.cs 页面中创建一个 cookie,并在page.aspx中使用 java 脚本获取它,因为服务器和客户端上存在一个 cookie,对它的任何更改都将在客户端和服务器上注册。