У меня есть кнопка, которая выполняет обратную передачу следующим образом:ASP.net: пропуск созданы динамически (по яваскрипту стороны клиента) значение наряду с постбэк
default.aspx
<asp:LinkButton ID="LinkButton1" CssClass="print" runat="server" PostBackUrl="Default.aspx" OnClick="ExportTaxInfoToPDF">Print</asp:LinkButton>
по умолчанию .aspx.cs
protected void ExportTaxInfoToPDF(object sender, EventArgs e)
{
...
Я хочу передать яваскрипт вычисленного значение в код (например, $('#taxTable').html()
т. Е. Я хочу привязать значение этого вычисления к EventArgs e
, чтобы я мог получить его на стороне сервера). Как я могу это сделать или есть лучший способ достичь этого?
Спасибо
EDIT:
После предложения Tetsuya Ямамото, теперь у меня есть следующий код:
<asp:HiddenField ID="TaxTableData" runat="server" Value="" />
<asp:LinkButton ID="PrintButton" CssClass="print" runat="server" PostBackUrl="Default.aspx" OnClick="ExportTaxInfoToPDF">Print</asp:LinkButton>
TaxTableData заполняемый всякий раз, когда всплывающее окно, содержащее данные (в виде таблицы) является открыто с использованием непосредственно таблицы HTML:
$("#ctl00_maincontent_TaxTableData").val($table[0].outerHTML);
HTML затем преобразуется в PDF с использованием iTextSharp. Это простой HTML <table>
:
<table>
<thead>
<th>...</th>
...
</thead>
<tbody>
..
мне интересно, если есть более эффективные способы передачи данных на стороне сервера, например, не будут вынуждены отключить проверку безопасности? Есть ли способ сериализовать таблицу и неэтериализовать ее с другой стороны?
Вы можете использовать скрытое поле (ванильный HTML 'input type =" hidden "или' asp: HiddenField' серверный контроль) и использовать 'Request.Form [" taxTable "]' (или 'ClientID', если серверный контроль используется) для извлечения значения на стороне клиента. –
Спасибо, это сработало. Хотя, я получаю сообщение об ошибке при попытке передать HTML, как мне нужно (* потенциально опасное значение Request.Form было обнаружено у клиента *) Знаете ли вы, что было бы лучшим способом передать HTML? –
Попробуйте использовать ' ' с '<страницы validateRequest =" false "/>' в веб-конфигурации и '<% @ Page ValidateRequest =" false "%>' на странице ASPX. Какой символ вызвал ошибку 'Request.Form'? –