6

変更の可能性があるかどうかを尋ねたいだけです。

<input type="hidden" name="reference" value="ABC"/>

これに:

<input type="hidden" name="reference" value="any values I want"/>

.cs/C# の背後に任意の値を設定できます - 動的にします。私が使用している支払いゲートウェイには必要なものがあり、ASP.NET コントロール (?) を含める方法が見つかりません。それに関する提案やコメントが必要です。ありがとう。

PS。<asp:HiddenField ID="reference" runat="server" Value="ABC" />支払いゲートウェイは特に「名前」プロパティを必要とするため、機能していません。

4

4 に答える 4

8

これは古い投稿であることは知っていますが、今この問題を解決しようとしている人にとってはrunat="server"、入力に追加すると、名前が変更されます (例: MainContentArea_ctl00_ctl01_ctl01_amount)。ClientIdMode="Static"IDのみに役立ちます。これを回避するには:

HTML ページで Literal を使用します。

    <asp:Literal runat="server" ID="litInputAmount"></asp:Literal>

コード ビハインド ファイルで、Literal の Text 属性に文字列を割り当てます。この文字列は、必要に応じて html にする必要があります。値フィールドに正しい値を追加することもできます。

    litInputAmount.Text = String.Concat("<input id='inputAmount' type='hidden' name='amount' value='", Price.ToString(), "'>");

これは次のようにコンパイルされます。

    <input id="inputAmount" type="hidden" value="224.4" name="amount">

これにより、正しい名前で支払いゲートウェイに情報が提供されますが、値は動的に管理できます。送信前に追加する必要があるその他の値について繰り返します。

于 2014-01-14T13:44:50.157 に答える
3

You can just put runat="server" on the control to access it from your code behind:

<input type="hidden" name="reference" id="reference" runat="server" />

Then, in your code behind:

void Page_Load(object sender, EventArgs e)
{
    // ...

    reference.Attriutes["value"] = "any values I want";

    // ...
}

Note that in this case, the "id" attribute is required because when you have runat="server", the id attribute is used to specify the name of the generated variable.

于 2010-07-01T03:44:45.303 に答える