Definir a ação de um formulário no .net 3.5 SP1 causa erros quando compilado

StackOverflow https://stackoverflow.com/questions/34768

  •  09-06-2019
  •  | 
  •  

Pergunta

Instalei recentemente o .net 3.5 SP1.Quando implantei um site compilado que continha um formulário com seu conjunto de ações:

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

Recebi este erro.
Método não encontrado:'Void System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)'.
Se um colega desenvolvedor que não instalou o SP1 implantar o site compilado, ele funcionará bem.Alguém sabe de alguma solução para isso?

Foi útil?

Solução

.NET 3.5 SP1 tenta usar o atributo action="" (.NET 3.5 RTM não).Portanto, quando você implanta, seu código está tentando definir a propriedade HtmlForm.Action e falhando, pois System.Web.dll no destino de implantação é RTM e não possui um setter na propriedade.

Outras dicas

Não conheço a solução específica, mas HtmlForm.set_Action() é uma função criada pelo compilador que atua como setter para uma propriedade chamada Action.

Quando você faz:

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

O definir o código na verdade se torna uma função chamada set_Action.

Sei que não é a melhor resposta, mas espero que ajude você a encontrar a origem dos seus problemas!

Acabei de encontrar o mesmo problema.Pelo que entendi, isso é realmente causado pelo fato de meu PC ter o .NET 3.5 SP1 e o servidor no qual implantei o projeto não.
Pelo que entendi, uma solução é que o servidor seja atualizado com .NET 3.5 SP1.Como não quero fazer isso ainda, apenas removi o atributo “action” de todos os formulários do projeto e isso resolveu o problema.
Consulte Mais informação

Poderia usar o método aqui para definir o método form.action:

Tudo o que foi dito acima é verdade...

Na verdade, quando alguém instala o 3.5 SP1, ele atualiza automaticamente o 2.0 e o 3.0 com seu próprio SP2.Portanto, se você estiver usando 2.0 para um aplicativo, receberá o erro.

Além disso, o SP1 no .Net2.0 não causou o problema.

Existe outra solução para isso.Escreva um javascript que defina a ação do formulário para o URL esperado em Page_Load e registre o script no carregamento da página.

Obrigado,http://www.dilrukshidevapriya.blogspot.com

Basta instalar o framework 3.5 SP1 que funciona.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top