Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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# 回发asp.net后隐藏变量没有值_C#_Asp.net - Fatal编程技术网

C# 回发asp.net后隐藏变量没有值

C# 回发asp.net后隐藏变量没有值,c#,asp.net,C#,Asp.net,我有以下几点 <input type="hidden" id="hdnField" name="hdnField"/> Request.Form.Set("hdnField", x.ToString()); Request.Form.Set(“hdnField”,x.ToString()); 返回页面后,该值不存在 我是新来的,任何帮助都将不胜感激。 您可以在页面类中定义属性,然后在代码中修改属性值: protected string HiddenFieldValue

我有以下几点

<input type="hidden" id="hdnField" name="hdnField"/>

Request.Form.Set("hdnField", x.ToString());

Request.Form.Set(“hdnField”,x.ToString());
返回页面后,该值不存在

我是新来的,任何帮助都将不胜感激。

您可以在页面类中定义属性,然后在代码中修改属性值:

    protected string HiddenFieldValue { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
            HiddenFieldValue = x.ToString();
        else
            HiddenFieldValue = x.ToString();
    }
然后像这样定义隐藏表单字段,以便将其值设置为属性值:

    <input type='hidden' id='hdnField' value='<%=HiddenFieldValue %>' />

如果只想在回发或非回发期间设置属性的值,还可以添加条件:

    <input type='hidden' id='hdnField' value='<% if(IsPostBack) { %> <%=HiddenFieldValue%> <% } %>' />

您应该使用asp提供的
asp:HiddenField
标记,而不是使用基本的HTML输入

<asp:HiddenField ID="hdnField" Value="" runat="server" ClientIDMode="Static" />


使用它,您可以使用
hdnField.value在c#中读取和写入值,使用
$(“#hdnField”).val()在jQuery中读取和写入值。这是可行的,但hdnField是用户控件的一部分,是aspx页面的一部分,因此来回的值正在消失,在这种情况下是否有保留该值的建议