Почему ASP.NET изменяет параметр действия формы? - PullRequest
2 голосов
/ 22 июля 2010

У меня странная проблема. У меня есть страница с именем search.aspx. При нажатии кнопки поиска пользователь должен быть перенаправлен на другой веб-сайт. Код перенаправления находится в одном из событий обратной передачи.

Вот код формы:

<form id="form1"  runat="server" onsubmit="return CheckSearchBox();"  action="http://mysearch.company.com/default.aspx" method="post" target="_top" > 

У меня один и тот же код развернут в двух средах.

Рабочая среда

Он имеет .NET 2.0 и 3.0, но не имеет пакетов обновления. Вот как отображается источник:

<form name="form1" method="post" action="search.aspx" id="form1" onsubmit="return CheckSearchBox();" target="_top">

Разбитая среда

Имеет .NET 2.0 sp2 и 3.0 sp1. Вот как отображается тот же код:

<form name="form1" method="post" action="http://mysearch.company.com/default.aspx" id="form1" onsubmit="return CheckSearchBox();" target="_top">

Обратите внимание, что отображаемое "действие" отличается. Итак, у меня есть несколько вопросов.

  • Почему ASP.NET может изменить действие в одной ситуации, а не в другой?
  • Почему ASP.NET вообще изменит действие?
  • Есть ли какая-то конфигурация, которую я могу сделать, чтобы она всегда меняла действие на "search.aspx"? (Мы не меняли этот код годами, и никто не хочет его трогать.)

Ответы [ 3 ]

3 голосов
/ 22 июля 2010

Оказывается, произошли изменения в .NET 2.0 SP2. До этого ASP.NET просто игнорировал любое указанное вами действие. Но в .NET 2.0 SP2 он на самом деле пытается использовать все, что есть в действии. См. Статью базы знаний здесь .

2 голосов
/ 22 июля 2010

Мне всегда говорили, что ASP.NET перезаписал действие, не позволяя вам вообще его контролировать.Вот почему они добавили свойство кнопки PostBackUrl, чтобы, когда вы щелкали по нему, оно размещалось на другой странице ....

Так что я удивлен, что действие сработало ... но я не знаювсе о процессе: -)

HTH.

0 голосов
/ 22 июля 2010

избавиться от runat = "server"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...