0

Webフォームで作業しているプロジェクトがあり、非表示のフォームフィールドに値を割り当てようとしてヒッチに遭遇し、コードビハインドからアクセスしようとしました。これは null 値になります。私は通常 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>

そして、これはコードビハインドにあります:

protected void ButtonSubmit_Click(object sender, EventArgs e)
{
    string hiddenFormValue = Request.Form["hiddenField"];
}

Request.Form["hiddenField"]ですnull。私も試しRequest.Paramsてみましたnull。このコードを修正する方法、または実装するためのより良い方法を推奨する方法についてのアイデアはありますか? asp:HiddenFieldまた、割り当てられた値を取得していたコントロールを使用しようとしました(でテスト済みalert($('#hiddenField').val())。ただし、コード ビハインドでは空の文字列として終了します。

4

5 に答える 5

2

コントロールを使用した場合asp:HiddenField、jsは次のようになります。

$('.button-submit').click(function () {
    var foo = 'bar';
    $('#<%=controlID.ClientID%>').val(foo);
});
于 2013-01-16T18:15:10.323 に答える
1

JavaScript は、AV sujested のような aspx 参照を使用する必要があります。

$('.button-submit').click(function () {
var foo = 'bar';
$('#<%=hiddenField.ClientID%>').val(foo);
});

そして、あなたはそれに直接アクセスすることができます

protected void ButtonSubmit_Click(object sender, EventArgs e) 
{
    string hiddenFormValue = hiddenField.Value; 
}

これはこれを達成するための最良の方法ではないかもしれませんが

おそらく代わりにこれを試してください:

<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 %>', '');
}
于 2013-01-16T18:38:42.007 に答える
0

ClientIDMode="Static"隠しフィールドを追加します。

次のリンクを参照してください: https://stackoverflow.com/a/20903213/175111

于 2014-03-03T18:42:49.140 に答える
0

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>
于 2013-01-16T18:17:14.530 に答える
0

アクセスできるようにするには、サーバーで実行するように指示する必要があります。クライアント側の値に問題なくアクセスできるため、機能しますalert($("#<%=hiddenField.ClientID%>").val());。サーバーで値を読み取りたい場合は、サーバーで実行する必要があります。

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

これで問題が解決することは間違いありません

于 2013-01-16T18:50:33.897 に答える