C# 在asp.net webforms中使用JQuery为隐藏表单字段赋值

C# 在asp.net webforms中使用JQuery为隐藏表单字段赋值,c#,jquery,asp.net,webforms,C#,Jquery,Asp.net,Webforms,我有一个在webforms中工作的项目,我在尝试给隐藏的表单字段赋值,然后从代码后面访问它时遇到了一个问题;这将导致一个空值。我通常处理MVC应用程序,所以我有点困惑 这是JQuery: $('.button-submit').click(function () { var foo = 'bar'; $('#hiddenField').val(foo); }); 这是我的表格: <form id="form1" runat="server"> <in

我有一个在webforms中工作的项目,我在尝试给隐藏的表单字段赋值,然后从代码后面访问它时遇到了一个问题;这将导致一个空值。我通常处理MVC应用程序,所以我有点困惑

这是JQuery:

$('.button-submit').click(function () {
    var foo = 'bar';
    $('#hiddenField').val(foo);
});
这是我的表格:

<form id="form1" runat="server">

    <input type="hidden" id="hiddenField" value="" />

    <asp:Button ID="ButtonSubmit" runat="server" OnClick="ButtonSubmit_Click" Text="Add New"  class="button-submit" />

</form>

Request.Form[“hiddenField”]
null
。我还尝试了
Request.Params
,得到了一个
null
。关于如何修复此代码或推荐更好的实现方法,有什么想法吗?我还尝试使用一个
asp:HiddenField
控件,该控件正在获取指定的值(使用
alert($(“#HiddenField').val()
)进行测试),但在代码后面仍然是一个空字符串。

如果使用
asp:HiddenField
控件,js应该是这样的:

$('.button-submit').click(function () {
    var foo = 'bar';
    $('#<%=controlID.ClientID%>').val(foo);
});
$('.button submit')。单击(函数(){
var foo='bar';
$('#').val(foo);
});

如果使用
asp:HiddenField
控件,js应该是这样的:

$('.button-submit').click(function () {
    var foo = 'bar';
    $('#<%=controlID.ClientID%>').val(foo);
});
$('.button submit')。单击(函数(){
var foo='bar';
$('#').val(foo);
});

我真的不明白您为什么不使用Asp隐藏控件,但即使您仍然想按自己的方式使用,我建议您添加名称

<form id="form1" runat="server">

    <input type="hidden" name="hiddenField" id="hiddenField" value="" />

    <asp:Button ID="ButtonSubmit" runat="server" OnClick="ButtonSubmit_Click" Text="Add New"  class="button-submit" />

</form>

我真的不明白您为什么不使用Asp隐藏控件,但即使您仍然想按自己的方式使用,我建议您添加名称

<form id="form1" runat="server">

    <input type="hidden" name="hiddenField" id="hiddenField" value="" />

    <asp:Button ID="ButtonSubmit" runat="server" OnClick="ButtonSubmit_Click" Text="Add New"  class="button-submit" />

</form>

javaScript应该使用aspx引用,比如AV sujested

$('.button-submit').click(function () {
var foo = 'bar';
$('#<%=hiddenField.ClientID%>').val(foo);
});
尽管这可能不是实现这一目标的最佳方式

或许可以试试这个:

<form id="form1" runat="server">

    <asp:hiddenfield  id="hiddenField" runnat="server" />

    <asp:Button ID="ButtonSubmit" runat="server" OnClick="javascript:FOO()" Text="Add New"   />

</form>

用剧本

function FOO() {
    var foo = 'bar';
    $('#<%=hiddenFeild.ClientID %>').val(foo);
__doPostBack('<%=form1.ClientID %>', '');
}
函数FOO(){
var foo='bar';
$('#').val(foo);
__doPostBack('','');
}

javaScript应该使用aspx引用,比如AV sujested

$('.button-submit').click(function () {
var foo = 'bar';
$('#<%=hiddenField.ClientID%>').val(foo);
});
尽管这可能不是实现这一目标的最佳方式

或许可以试试这个:

<form id="form1" runat="server">

    <asp:hiddenfield  id="hiddenField" runnat="server" />

    <asp:Button ID="ButtonSubmit" runat="server" OnClick="javascript:FOO()" Text="Add New"   />

</form>

用剧本

function FOO() {
    var foo = 'bar';
    $('#<%=hiddenFeild.ClientID %>').val(foo);
__doPostBack('<%=form1.ClientID %>', '');
}
函数FOO(){
var foo='bar';
$('#').val(foo);
__doPostBack('','');
}

您需要告诉它在服务器上运行才能访问它。您可以在客户端很好地访问该值,这就是为什么
警报($(“#”).val();
可以工作的原因。如果您想在服务器上读取该值,则需要在服务器上运行它

<input type="hidden" id="hiddenField" runat="server" value="" />


非常确定这将解决您的问题

您需要告诉它在服务器上运行,以便访问它。您可以在客户端很好地访问该值,这就是为什么
警报($(“#”).val();
可以工作的原因。如果您想在服务器上读取该值,则需要在服务器上运行它

<input type="hidden" id="hiddenField" runat="server" value="" />

非常确定这将解决您的问题

在隐藏字段中添加
ClientIDMode=“Static”

请参阅此链接:.

在隐藏字段上添加
clientmode=“Static”


请参阅此链接:.

我尝试了此操作,尽管值被分配给了控件(如果我尝试alert($('#').val()),我会得到显示“bar”的弹出窗口,但是如果我在代码后面插入断点,我仍然会得到一个空字符串。我尝试了此操作,尽管值被分配给了控件(如果我尝试alert($('#').val());我得到一个显示“bar”的弹出窗口,但是如果我在后面的代码中插入一个断点,我仍然会得到一个空字符串。我尝试了这两种方法;实际上是先使用asp控件。这两种方法都不适用于我。我尝试了这两种方法;实际上是先使用asp控件。这两种方法都不适用于我。