Я знаю, что это старый пост, но для тех, кто хочет решить эту проблему сейчас - если вы добавите runat="server"
к входу, имя будет изменено (например, MainContentArea_ctl00_ctl01_ctl01_amount
).ClientIdMode="Static"
поможет только для идентификатора.Чтобы обойти это:
На вашей html-странице используйте литерал:
<asp:Literal runat="server" ID="litInputAmount"></asp:Literal>
В коде файла присвойте строку атрибуту «Текст» литерала.как бы вам хотелось.Также можно добавить правильное значение для поля значения:
litInputAmount.Text = String.Concat("<input id='inputAmount' type='hidden' name='amount' value='", Price.ToString(), "'>");
Затем оно будет скомпилировано как:
<input id="inputAmount" type="hidden" value="224.4" name="amount">
Это даст информацию шлюзу платежей с правильным именем, но ваша ценность может управляться динамически.Повторите эти действия для любых других значений, которые необходимо добавить перед отправкой.