none
[ASP.NET MVC] Como criar uma Enquete? RRS feed

  • Pergunta

  • Olá pessoal, estou tentanto criar uma enquete mas travei.

    Estou utilizando ASP.NET MVC e banco de dados SQL SERVER 2008.

    Tenho um formulário em uma página com outros formulários, onde o usuário escolhe uma resposta para uma determinada pergunta e clica no botão "Enviar", preciso saber como enviar a informação da escolha do usuário para a action que vai receber o string contento a resposta escolhida.

    O que eu quero saber é até simples: Como fazer com que o formulário envie para a action o valor escolhido?

    Desde já agradeços os esforços empregados em benefício deste post.
    segunda-feira, 24 de agosto de 2009 15:32

Respostas

  • Obrigado Sanses, resolvi o problema, a minha Action deveria receber um tipo "FormCollection" e neste método obtenho o valor que desejo utilizando "formCollection["Enquete"]", segue-se o código abaixo para ajudar quem tiver a mesma dúvida que eu tive:

    ASPX:
    <%  if(Model.enquete != null)
                    {
                        using(Html.BeginForm("Enquete", "Home"))
                        { %>
                            <strong><%= Html.Encode(Model.enquete.Pergunta)%></strong>
                            <%  foreach(var item in Model.enquete.Respostas_da_Enquetes)
                                { %>
                                    <%= Html.RadioButton("Enquete", item.cod)%><label><%= item.Resposta%></label><br />
                            <%  } %>
                            <input type="submit" value="Votar" />
                     <% }
                    } %>
    C#:

    [AcceptVerbs(HttpVerbs.Post)]
            public ActionResult Enquete(FormCollection collection)
            {
                Respostas_da_EnqueteRepository repository = new Respostas_da_EnqueteRepository();
                Respostas_da_Enquete resposta = repository.BuscarResposta(Convert.ToInt32(collection["Enquete"]));
                resposta.Quantidade_de_Votos++;
                repository.Salvar();
                return RedirectToAction("Index");
            }
    Obrigado pessoal ;)
    • Marcado como Resposta Junio Albino segunda-feira, 24 de agosto de 2009 19:02
    segunda-feira, 24 de agosto de 2009 18:39

Todas as Respostas

  • Junio

    O processo é o mesmo. No evento de um botão ele vai pegaar o valor escolhido e enviar para o servidor processar. Talvez eu não tenha entendido sua pergunta. Mais em todos os casos segui um link sobre criação de enquete:
     
    http://imasters.uol.com.br/artigo/12519/aspnet/criando_uma_enquete_com_linq_e_ajax_/


    Espero ter ajudado
    []'s
    Sanses


    --> se a resposta foi util, marque-a como util.
    segunda-feira, 24 de agosto de 2009 16:16
  • Sanses, obrigado pela resposta, mas na plataforma MVC, pelo que eu entendo até então, não se utiliza eventos de botão e sim o post do form.
    segunda-feira, 24 de agosto de 2009 18:04
  • Junio

    Deslcupe, não percebi que voce estava utilizando mvc.

    Sanses
    segunda-feira, 24 de agosto de 2009 18:07
  • Obrigado Sanses, resolvi o problema, a minha Action deveria receber um tipo "FormCollection" e neste método obtenho o valor que desejo utilizando "formCollection["Enquete"]", segue-se o código abaixo para ajudar quem tiver a mesma dúvida que eu tive:

    ASPX:
    <%  if(Model.enquete != null)
                    {
                        using(Html.BeginForm("Enquete", "Home"))
                        { %>
                            <strong><%= Html.Encode(Model.enquete.Pergunta)%></strong>
                            <%  foreach(var item in Model.enquete.Respostas_da_Enquetes)
                                { %>
                                    <%= Html.RadioButton("Enquete", item.cod)%><label><%= item.Resposta%></label><br />
                            <%  } %>
                            <input type="submit" value="Votar" />
                     <% }
                    } %>
    C#:

    [AcceptVerbs(HttpVerbs.Post)]
            public ActionResult Enquete(FormCollection collection)
            {
                Respostas_da_EnqueteRepository repository = new Respostas_da_EnqueteRepository();
                Respostas_da_Enquete resposta = repository.BuscarResposta(Convert.ToInt32(collection["Enquete"]));
                resposta.Quantidade_de_Votos++;
                repository.Salvar();
                return RedirectToAction("Index");
            }
    Obrigado pessoal ;)
    • Marcado como Resposta Junio Albino segunda-feira, 24 de agosto de 2009 19:02
    segunda-feira, 24 de agosto de 2009 18:39