Você (assim como eu), já tentou adicionar um formulário asp (runat=server) em uma MasterPage e depois não conseguiu pegar os dados de retorno utilizando a síntese comum: Request.Form("campo") ou Request.QueryString("campo").
O framework adiciona um prefixo ao nome do campo, gerando o erro:
Tipo: o campo "usuario" vira "ctl00$usuario".
Não adianta adicionar o prefixo ao efetuar o Request, pois o prefixo pode mudar.
A forma mais simples é adicionar uma função que busque entre os campos do formulário, a partir da chave do mesmo, o campo que você deseja; Tá certo que não é simples assim e pode "comprometer" um pouco a performance, mas funciona.
Public Function PegaValorCampoPost(ByVal nome As String) As StringAssim use o PegaValorCampoPost("campo") ao invés do Request.Form("campo").
Dim objeto As String = String.Empty
Dim valor As String = String.Empty
For Each objeto In Request.Form.Keys
If objeto.Contains(nome) Then
valor = Request.Form(objeto)
End If
Next
Return valor
End Function
Obs.: Somente é funcional para o método 'post', caso queira utilizar o método 'get', basta alterar o valor de Request.Form para Request.QueryString, na função.
extraído do site da msdn.
Nenhum comentário:
Postar um comentário