Reiny 1 Denunciar post Postado Julho 10, 2008 Olá amigos gostaria de-lhes pedir um esclarecimento ! Sou um programador java dando meus primerios passos em .NET ( C# + ASP.NET ) , em um de meus exercicios tentei submeter um formulario HTML para uma classe C#, tentando simular o que eu posso fazer em java com um servelet e obtive um erro que me dizia entre outras coisas que isso era "Expressamente Proibido", gostaria que me dissesem se isso e possivel ? Caso alguem possa fazer um exemplo agradeço !!!! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 10, 2008 Reiny Seja Bem Vindo ao Fórum Imasters, de uma olhada em nossas regras: Regras do Fórum iMasters Poste seu código que esta com erro! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Fica dificil saber o que é. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Reiny 1 Denunciar post Postado Julho 11, 2008 Amigo quintelab vlw pelas boas vindas , li as regras do forum e peço desculpas pelo tituo repetido ! bom quanto ao codigo e muito simples <form method="post" action="Class.cs"> <input name="nome" type="text" /> <input type="submit"> </form> using System; using System.Collections.Generic; using System.Web; namespace administracao { public class Class { } } ERRO : ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Erro de Servidor no Aplicativo '/'. Este tipo de página não é atendido. Descrição: Tipo de página solicitado não é atendido porque foi explicitamente proibido. Talvez a extensão '.cs' esteja incorreta. Examine o URL e certifique-se de que está digitado corretamente. URL solicitada: /Class.cs Informações sobre a Versão: Microsoft .NET Framework Versão:2.0.50727.3031; Versão do ASP.NET:2.0.50727.3031 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- OBS : Apesar dessa classe estar vazia , fiz uma classe que colhia as informações pela classe HttpWebRequest do pacote system.net e tanbme deu eero , o problema e que nen chama a classe !!!!!! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 11, 2008 Cara seu código esta um pouco confuso, pelo que entendi este código cs que postou não é referente ao formulário e sim uma classe a parte, o correto seria herda-la no código cs do seu formulário, acredito que não seja possível utiliza-la no action do HTML. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Reiny 1 Denunciar post Postado Julho 11, 2008 Ta certo vlw pela resposta quintelab, mal entrei no asp.net e ja obtive uma limitação que pra mim que não sou adpto das """ Facilidades/ Produtividades """ dos webcontrols e fatal pro meu futuro com a linguagem, queria implementar uma aplicação MVC na maun em c# mais parece que naum vai rolar , pois parece (como você mesmo disse ) naum tenho como submeter um formulario direto a uma classe C# que seria meu controlador (assim como faço com um servelet) mais brigadão mesmo amigo , c e muito prestativo vlw !!!!!! hehehe braço !!!! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 11, 2008 Tranquilo!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Lab Design 0 Denunciar post Postado Julho 11, 2008 Reiny, eu uso muito class.cs nos projetos procuro seguir à risca os mandamentos do dotnet que sugere que dividamos o projeto em pequenos codigos para melhor facilitar a manutenção: Não sei se te ajuda mas vou postar parte dos codigos que uso abaixo e você dá uma conferida se é o que está procurando. 1) Conf. do web.config. No caso aqui é um projeto utilizando mySql. <connectionStrings> <add name="JerodString" connectionString="Data Source=mysql.dominio.com.br; Database=minha_database; User Id=usuario; Password=minhasenha; pooling=false"/> </connectionStrings> 2) uma vez configurado o webconfig, vamos ao form. Um exemplo simples de form para contato. Veja que ele acessa um class para montar o combo de estados <asp:Content ID="Content1" ContentPlaceHolderID="Navigate" Runat="Server"> <fieldset> <legend><img src="Images/icContato.png" alt=""/></legend> <asp:Panel ID="frmContato" runat="server" Visible="true"> <table border="0" cellpadding="4" cellspacing="4" width="100%" style="border:0"> <tr> <td style="text-align:center; border:solid 1px silver" rowspan="9"> <b style="font-size:14pt">Queremos ouvir você!</b><br /><br /> <img src="Images/contato.jpg" alt=""/><br /><br /> <b style="font-size:12pt">Ligue TEL/FAX:<br /> <b style="font-size:14pt">0000-0000</b><br /> ou use o formulário ao lado.</b> </td> <td style="width:10px; background:#ffffff" rowspan="9"></td> <td style="text-align:center; border:solid 1px silver"> <b>Preencha o formulário abaixo e clique Enviar</b><br /> <table border="0" cellpadding="2" cellspacing="2"> <tr> <td class="label">Empresa:</td> <td> <asp:TextBox ID="empresa" runat="server" CssClass="required" /></td> </tr> <tr> <td class="label">Cidade: </td> <td> <asp:TextBox ID="cidade" runat="server" CssClass="required"/></td> </tr> <tr> <td class="label">Estado:</td> <td> <asp:DropDownList ID="estado" runat="server" DataSourceID="dsEstados" AppendDataBoundItems="True" DataTextField="estado" DataValueField="uf" CssClass="required" style="font-size:8pt; width:120px"> <asp:ListItem Selected="True" Value="" Text="Selecione" /> <asp:ListItem Value="" Text="-------------------------" /> </asp:DropDownList> <asp:ObjectDataSource ID="dsEstados" TypeName="Jerod.Estados" SelectMethod="Select" Runat="server"/> <span class="label" style="margin-left:8px"> DDD/Tel.: </span> <asp:TextBox ID="fone" runat="server" CssClass="required" style="width:100px; text-align:center" MaxLength="12"/> </td> </tr> <tr> <td class="label">E-mail: </td> <td> <asp:TextBox ID="email" runat="server" CssClass="required"/></td> </tr> <tr> <td class="label">Contato:</td> <td> <asp:TextBox ID="contato" runat="server" CssClass="required"/> </td> </tr> <tr> <td class="label">Assunto: </td> <td> <asp:TextBox ID="assunto" runat="server" CssClass="required" Width="300px"/></td> </tr> <tr> <td class="label">Mensagem: </td> <td> <asp:TextBox ID="mensagem" runat="server" CssClass="required" TextMode="MultiLine" Rows="6"/></td> </tr> <tr> <td></td> <td style="text-align:center"> <asp:Button ID="btnSend" CssClass="btnOk" runat="server" Text="Enviar" OnClientClick="return checkForm('aspnetForm')" OnClick="send"/></td> </tr> </table> </td> </tr> </table> </asp:Panel> <asp:Label ID="statusLine" runat="server" /> <asp:Panel ID="mailOk" visible="false" runat="server"> <p style="text-align:center"> <b style="color:#006666">Seu e-mail foi enviado com sucesso.</b><br /><br /> Caso o mesmo necessite de uma resposta,<br /> responderemos o mais breve possível.<br /><br /> <b style="color:#006666">Obrigado pelo seu contato.</b></p> </asp:Panel> <asp:Panel ID="mailErr" visible="false" runat="server"> <p style="text-align:center"> <b style="color:red">Seu e-mail não foi enviado</b><br /><br /> Desculpe mas houve um erro no servidor de envio.</p> <p style="text-align:center"> <asp:Label ID="mailError" runat="server" Height="75px" Width="407px"></asp:Label></p> </asp:Panel> </fieldset> </asp:Content> Agora no code-behind do aspx, faz validação dos campos. Embora isso seja feito em JS porém as vezes o JS falha using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Contato : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { empresa.Attributes.Add("onkeypress", "return toUpper(this);"); cidade.Attributes.Add("onkeypress", "return toUpper(this);"); email.Attributes.Add("onkeypress", "return toLower(this);"); contato.Attributes.Add("onkeypress", "return toUpper(this);"); assunto.Attributes.Add("onkeypress", "return toUpper(this);"); fone.Attributes.Add("onkeypress", "return formataFone(event, this.id);"); } } public void send(object sender, EventArgs e) { if(empresa.Text == "") statusLine.Text = "Campo Empresa não pode ficar em branco !!!"; else if (cidade.Text == "") statusLine.Text = "Campo E-mail não pode ficar em branco !!!"; else if(estado.Text == "") statusLine.Text = "Campo Estado não pode ficar em branco !!!"; else if(fone.Text == "") statusLine.Text = "Campo Fone não pode ficar em branco !!!"; else if(email.Text == "") statusLine.Text = "Campo E-mail não pode ficar em branco !!!"; else if(contato.Text == "") statusLine.Text = "Campo Contato não pode ficar em branco !!!"; else if(assunto.Text == "") statusLine.Text = "Campo Assunto não pode ficar em branco !!!"; if(mensagem.Text == "") statusLine.Text = "Campo Mensagem não pode ficar em branco !!!"; else { string ebody = "<table cellpadding=2 cellspacing=2 border=0 width='100%'>" + "<tr><td class=label>Empresa:</td><td class=value>" + empresa.Text + "</td>" + " <td class=label>Contato:</td><td class=value>" + contato.Text + "</td></tr>" + "<tr><td class=label>Cidade:</td><td class=value>" + cidade.Text + "/" + estado.Text +"</td>" + " <td class=label>Fone:</td><td class=value>" + fone.Text + "</td></tr>" + "<tr><td class=label>Email.:</td><td colspan=3><a href='mailto:" + email.Text + "'>" + email.Text + "</a></td></tr>" + "<tr><td class=label>Assunto:</td><td class=value colspan=3>" + assunto.Text + "</td></tr>" + "<tr><td class=label>Mensagem:</td><td colspan=3>" + mensagem.Text + "</td></tr>" + "</table>"; // o class SendEmail é responsável pelo envio string sended = SendEmail.SendEmail.Sender(empresa.Text, email.Text, "email@dedestino.com.br", "JEROD - Contato", ebody, true); frmContato.Visible = false; if(sended == "Email enviado com sucesso.") mailOk.Visible = true; else { mailErr.Visible = true; mailError.Text = "O erro retornado foi:" + sended.ToString(); } } } } o class para estados: using MySql.Data.MySqlClient; using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Configuration; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; namespace Jerod { /// <summary> /// Executa procedures de seleção na database /// </summary> [system.ComponentModel.DataObject] /// <summary> /// Executa procedure para carregar e preencher o Estados lateral /// </summary> /// <param name="reader"></param> public class Estados { private static readonly String _connectionString; private string _estado; public string estado { get { return _estado; } set { _estado = value; } } private string _uf; public string uf { get { return _uf; } set { _uf = value; } } static Estados() { // recupera do web.config as configurações de conexão _connectionString = WebConfigurationManager.ConnectionStrings["JerodString"].ConnectionString; } public Estados(MySqlDataReader reader) { _estado = (string)reader["estado"]; _uf = (string)reader["uf"]; } [system.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjec tMethodType.Select, true)] public static List<Estados> Select() { //Initialize command MySqlConnection con = new MySqlConnection(_connectionString); MySqlCommand cmd = new MySqlCommand("SELECT * FROM estados ORDER BY estado", con); cmd.CommandType = CommandType.Text; List<Estados> results = new List<Estados>(); using (con) { con.Open(); MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { results.Add(new Estados(reader)); } return results; } } } } e para completar o class para envio do email: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; //Classes para envio de emails using System.Net; using System.Net.Mail; using System.Net.Mime; using Quiksoft.FreeSMTP; using System.Text.RegularExpressions; namespace SendEmail { ///<summary> ///Class para envio de emails ///</summary> public class SendEmail { public static string Sender( string nameFrom, // nome do remetente string emailFrom, // email do remetente string emailTo, // email do destinatario string subject, // assunto string message, // corpo da mensagem Boolean Replay2User // enviar copia para o remetente ) { string eHTML; // usado para montar o email em html string eTEXT; // usado para monar o email em text/plain Boolean local; local = (System.Web.HttpContext.Current.Request.UserHostAddress.ToString() == "127.0.0.1") ? true : false; eHTML = @"<html> <head> <title>CLIENTE tal</title> <style type=text/css> * { font: normal 9pt sans-serif, Arial, Helvetica, Verdana, Tahoma; color: #000000 } .subject { text-align:center; font: bolder 11pt sans-serif, Arial, Helvetica, Verdana, Tahoma; width:500px; } .sendDate { text-align=right; font: normal 8pt sans-serif, Arial, Helvetica, Verdana, Tahoma; background:#f0f0f0; } a { font-weight:bold; text-decoration:none; } a:hover { color: #ff0000; border-bottom: solid 1px #000066; font-weight:bold; text-decoration:none; } td { padding:0 4px; border:solid 1px silver; } .label { text-align=right; } .value { font-weight:bold; text-transform: uppercase; } .rodape { background:url(http://www.meudomino.com.br/net/Images/mailRodape.png) no-repeat; text-align:center; height:20px; border:0; } </style> </head> <body topmargin=4 leftmargin=4> <a href='http://www.meudomino.com.br/net'> <img src='http://www.meudomino.com.br/net/Images/mailTop.png' border=0 width=565></a> <table border=0 cellpadding=1 cellspacing=1 width=565> <tr> <td class='subject'>" + subject + @"</td> <td class=sendDate>" + String.Format("{0:dd/MM/yyyy}", DateTime.Now) + @"</td></tr> <tr> <td colspan=2>" + message + @"</td></tr> <tr> <td class=rodape colspan=2> <a href='http://www.meudomino.com.br/net'>http://www.meudomino.com.br</a> </td> </tr> </table> </body> </Html>"; // Declara uma variável que armazenará a expressão regular a ser comparada. // RegexOptions.IgnoreCase indica que não será CaseSensitive eTEXT = Regex.Replace(eHTML, @"(.|\n)*?", string.Empty); eTEXT = Regex.Replace(eTEXT, @" ", string.Empty); //Create the EmailMessage object EmailMessage msgObj = new EmailMessage(); //Specify from address and display name msgObj.From.Email = emailFrom; msgObj.From.Name = nameFrom; //Adiciona envio de confirmação para a cliente if (!local) { msgObj.Recipients.Add(emailTo, nameFrom, RecipientType.To); // se true envia uma copia para o o remetente if (Replay2User) msgObj.Recipients.Add(emailFrom, "JEROD", RecipientType.To); } else { msgObj.Recipients.Add("webmaster@meudominio.com.br", nameFrom, RecipientType.To); } //Specify the subject msgObj.Subject = subject; //Add an HTML body part msgObj.BodyParts.Add(eHTML, BodyPartFormat.HTML); //Add a text body part to server as alternative text for non HTML mail readers msgObj.BodyParts.Add(eTEXT, BodyPartFormat.Plain); // charset correto msgObj.CharsetEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); //Add an attachment //msgObj.Attachments.Add("d:\\cromo.psd"); //Create the SMTP object using the constructor to specify the mail server SMTP smtpObj; smtpObj = new SMTP("localhost"); //enviamos o e-mail através do método .send() try { //Send the message smtpObj.Send(msgObj); } catch (Exception ex) { // retorna com a mensagem de erro return(ex.Message); } //excluímos o objeto de e-mail da memória return ("Email enviado com sucesso."); //msgObj.Dispose(); } } } Espero que isso te ajude qualquer coisa se puder ajudar posta ai novamente. Compartilhar este post Link para o post Compartilhar em outros sites
Reiny 1 Denunciar post Postado Julho 11, 2008 Fala Lab Design tranquilo cara vlw pelo codigo , porém oq estou tentando fazer e simples e somente submeter um form html para uma classe c# pura sem o uso de webcontrols ( "pois considero eles bastante instaveis" ) assim como um form html postaria a um servelet por exemplo !!! mais vlw pelo codigo !!!!! Compartilhar este post Link para o post Compartilhar em outros sites