Хорошо, сегодня у нас возникла проблема. Это странная вещь, о которой я даже и не подумал бы попробовать.Встроенный код ASP.NET в серверном элементе управления
<form id="form1" runat="server" method="post" action="Default.aspx?id=<%= ID %>" >
Хорошо, это очень уродливо, и я бы никогда не пробовал это сам. Он появился в некотором коде, который был написан много лет назад, но работал до этих выходных после того, как на веб-сервере клиента, где размещен код, была установлена куча обновлений.
Фактический результат этого следующий HTML:
<form name="form1" method="post" action="Default.aspx?id=<%= ID %>" id="form1">
URL-адрес заканчивается так:
http://localhost:6735/Default.aspx?id=<%= ID %>
Который, как вы можете видеть, показывает, что символ «<» в настоящее время закодированный до того, как ASP.NET фактически обработает страницу. Мне кажется странным, поскольку я думал, что, хотя это не очень мило, это должно сработать. Я смущен.
Хуже того, клиент настаивает на том, что это ошибка в IE, поскольку он работает в Firefox. Фактически, он также поврежден в Firefox, за исключением того, что Firefox рассматривает его как 0.
Любые идеи о том, почему это происходит и как его легко исправить? Все, что я пытаюсь сделать внутри серверного элемента управления, заканчивается тем, что ускользает.
Редактировать Ok, я нашел «исправить»
<form id="form1" runat="server" method="post" action='<%# String.Format("Default.aspx?id={0}", 5) %>' >
Но это требует от меня, чтобы позвонить DataBind, который добавляет больше хака к первоначальному хака. Угадайте, если никто не подумает о чем-нибудь еще, мне придется пойти с этим.
Ничего себе! Вы уверены, что нет другого способа исправить это? Вы делаете какой-то перекрестный пост? Редко можно увидеть, что «действие» указано для приложения webform. –
Это фактически сообщение обратно к себе. Очень странно! Это все веб-формы с встроенным кодом «позади». Я согласен, я никогда не использовал атрибут action в веб-формах. Никогда не было необходимости. – John