Установка действия формы в .net 3.5 SP1 вызывает ошибки при компиляции - PullRequest
8 голосов
/ 29 августа 2008

Я недавно установил .net 3.5 SP1. Когда я развернул скомпилированный веб-сайт, содержащий форму с набором действий:

<form id="theForm" runat="server" action="post.aspx">

Я получил эту ошибку.
Метод не найден: 'Void System.Web.UI.HtmlControls.HtmlForm.set_Action (System.String)'.
Если другой разработчик, не установивший SP1, развернет скомпилированный сайт, он будет работать нормально. Кто-нибудь знает какие-либо решения для этого?

Ответы [ 7 ]

6 голосов
/ 29 августа 2008

.NET 3.5 SP1 пытается использовать атрибут action = "" (.NET 3.5 RTM этого не сделал). Поэтому при развертывании ваш код пытается установить свойство HtmlForm.Action и завершается неудачей, поскольку System.Web.dll в целевом объекте развертывания является RTM и не имеет установщика в свойстве.

1 голос
/ 29 августа 2008

Я не знаю конкретного решения, но HtmlForm.set_Action () - это функция, создаваемая компилятором, которая действует как установщик свойства с именем Action.

Когда вы делаете:

public String Action { set { DoStuff(); } }

Код set фактически становится функцией с именем set_Action .

Я знаю, что это не самый лучший ответ, но я надеюсь, что он поможет вам найти источник ваших проблем!

0 голосов
/ 02 октября 2009

Basta instalar o framework 3.5 SP1 que funciona.

0 голосов
/ 24 августа 2009

Есть и другое решение. Напишите javascript, который установит действие формы для ожидаемого URL-адреса в Page_Load и зарегистрирует скрипт при загрузке страницы.

Спасибо, http://www.dilrukshidevapriya.blogspot.com

0 голосов
/ 13 августа 2009

Все вышесказанное верно ...

Фактически, если установить 3.5 SP1, он автоматически обновляет 2.0 и 3.0 со своим собственным SP2. Итак, если вы используете 2.0 для приложения, вы получите ошибку.

Кроме того, SP1 на .Net2.0 не вызвал проблему.

0 голосов
/ 12 января 2009

Можно использовать метод здесь , чтобы установить метод form.action:

0 голосов
/ 11 ноября 2008

Я просто столкнулся с той же проблемой. Из того, что я понял, это действительно связано с тем фактом, что на моем ПК установлен .NET 3.5 SP1, а на сервере, на котором я развернул проект, нет.
Насколько я понимаю, одним из решений является обновление сервера до версии .NET 3.5 SP1. Поскольку я пока не хочу этого делать, я просто удалил атрибут "action" из всех форм в проекте, и это решило проблему.
Читать дальше

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