首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将javascript变量传递给服务器端C#逻辑

将javascript变量传递给服务器端C#逻辑
EN

Stack Overflow用户
提问于 2010-10-26 22:23:18
回答 4查看 9.7K关注 0票数 2

在C#中,有没有办法将javascript变量赋值/传递/复制到服务器端变量?为了便于讨论,假设我能够解析一些JSON来获取我想要存储的变量,并将它们分配到客户端(即,.var = FirstName,var = 25,var = someDateTime,依此类推)。

EN

回答 4

Stack Overflow用户

发布于 2010-10-26 22:28:10

Javascript变量存在于客户机上,因此为了将这些值放入服务器,您需要执行来自客户机的请求。您可能需要一种称为AJAX的方法。AJAX涉及到Javascript在页面后台向服务器发出请求。您将设置一个等待这些后台请求的C#网页。如果使用GET请求,那么将变量放在对新C#页面的AJAX请求的查询字符串中。如果要使用POST请求,则需要在post到页面的数据中设置参数。

jQuery这样的库使得这类事情变得非常简单。

票数 5
EN

Stack Overflow用户

发布于 2010-10-26 22:29:13

没有直接的方法可以从服务器端代码访问客户端代码中的变量。

一种无需编写处理程序、ajax帖子等的简单方法就是简单地将java脚本变量存储在一个隐藏的文本框中,并在帖子中检索它。您也可以写回隐藏字段并将值提供给您的脚本,例如

标记

代码语言:javascript
运行
复制
<asp:HiddenField runat="server" Id="JavascriptValue" value="0">

脚本

代码语言:javascript
运行
复制
<script>
   var myValue = <%=JavascriptValue.Value%>
</script>

服务器端

代码语言:javascript
运行
复制
protected void Page_Load(object sender, EventArgs e)
{
string val = JavascriptValue.Value;
}
票数 1
EN

Stack Overflow用户

发布于 2010-10-26 22:29:25

通过JS将值写入控件(例如HiddenField),并在回发时读取。

可以从Page_Load上的代码隐藏中注册隐藏字段

代码语言:javascript
运行
复制
if (this.Request.Form["myHiddenField"] == null) { 
    ClientScript.RegisterHiddenField("myHiddenField", ""); }

使用脚本填充它

代码语言:javascript
运行
复制
ClientScript.RegisterOnSubmitStatement(this.GetType(),
     MethodBase.GetCurrentMethod().DeclaringType.Name + "_myHiddenField",
     "var res=document.getElementById('myHiddenField');if(res!=null){res.value='some value';}");

并在回发上阅读它(也可以是Page_Load)

代码语言:javascript
运行
复制
var myValue = (!IsPostBack)
    ? null
    : this.Request.Form["myHiddenField"];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4024651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档