Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在codebehind中创建隐藏字段并通过客户端javascript访问它_C#_Asp.net_C# 4.0 - Fatal编程技术网

C# 在codebehind中创建隐藏字段并通过客户端javascript访问它

C# 在codebehind中创建隐藏字段并通过客户端javascript访问它,c#,asp.net,c#-4.0,C#,Asp.net,C# 4.0,我想以编程方式向asp.net页面添加一个隐藏字段,通过javascript读取并更改它。到目前为止,我的代码无法读取添加的隐藏字段 下面是一个简单的例子: Default.aspx: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3

我想以编程方式向asp.net页面添加一个隐藏字段,通过javascript读取并更改它。到目前为止,我的代码无法读取添加的隐藏字段

下面是一个简单的例子: Default.aspx:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
    <input type="hidden" id="myHiddenField1" value="blub" runat="server" />

    <button onclick="myFunction()">click me</button>
    <script>
        function myFunction() {

            var testVar = document.getElementById("myHiddenField1").value; //works: field defined in aspx page
            var testVar2 = document.getElementById("myHiddenField2").value; //fails, Object required: field defined in codebehind

            alert(testVar);
        }
    </script>
</body>
</html>
[编辑]

我收到的错误是:Microsoft JScript运行时错误:需要对象。如果添加警报(testVar2)并忽略错误,消息框将显示“undefined”

[/edit]

[edit2]

[删除编辑,因为我错了]

[/edit2]


总结一下我的问题:如何在codebehind中创建一个隐藏字段,以便从javascript获取和设置它

您可以尝试以下方法:

protected void Page_Load(object sender, EventArgs e)
{
    HtmlInputHidden hidden2 = new HtmlInputHidden();
    hidden2.ID = "Here you will put the id of the control";
    hidden2.Value = "Here you will put your value";
    this.Controls.Add(hidden2);
}
在源代码文件的顶部,必须添加以下语句:

using System.Web.UI.HtmlControls;

主要问题是aspx页面中缺少以下行:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>


codebehind从未执行过。

您的代码可以运行,请尝试
警报(testVar2)
@Nalaka526:不幸的是,它不能运行。我收到一个错误:Microsoft JScript运行时错误:Object required,这表明找不到隐藏字段。是否尝试了发布的代码,但出现了此错误?是。我试过你的代码。将myFunction代码更改为:var testVar2=document.getElementById(“Hidden2”).value;警报(testVar2);。同样的错误。请稍等,因为我可能会发现错误。谢谢你的耐心。似乎没有效果。我还是会犯同样的错误,让我们一起来。
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>