none
Tela de Consulta RRS feed

  • Pergunta

  • Boa Tarde!

    Eu estou tendo que começar a fazer um projeto asp.net mvc, já li alguns artigos, mas ainda estou completamente perdida.

    Para simplificar, tenho uma tela com 2 campos (dropdownlist), 1 textbox e 1 submit (isso porque não sei poque não existe html.button).

    Eu quero que ao clicar nesse submit, fazer uma consulta baseada nesses 2 dropdowns e retornar um valor para jogar dentro do meu textbox.

    Quando entro nessa tela, já estou conseguindo carregar esses dropdownlists com os dados vindo do meu banco através do datacontext do linq to sql.

    Eu já criei um método dentro do Model para retornar uma consulta do banco, e um método dentro do Controller fazendo a transição entre o meu Model e minha View.

    Qual código eu tenho que colocar dentro do meu submit para chamar esse método no meu controller passando esses 2 parâmetros?

    Detalhe: estou usando o MVC View Content Page

    Por favor, me ajudem!

    quarta-feira, 21 de outubro de 2009 15:22

Respostas

  • Oi Juliana,

    Graças ao excelente trabalho que o algoritmo de "binding" do ASP.Net MVC faz, para "passar" os parâmetros dos campos da View para um método do Controller, basta que esse método do Controller tenha parâmetros com o mesmo nome que os campos da View.

    Exemplificando, se você tiver na sua página:

    Textbox com o nome: Pessoa
    Dropdownlists com os nomes: idProduto e idCategoria

    Você deve criar um método no Controller com a seguinte assinatura:

    public ActionResult FazAlgumaCoisaComOsDadosPassados(string Pessoa, int idProduto, int idCategoria)

    ou

    public ActionResult FazAlgumaCoisaComOsDadosPassados(MeusDados dados)

    No segundo caso, você deverá ter uma classe chamada "MeusDados", contendo propriedades públicas com o mesmo nome dos campos da View:

    public class MeusDados
    {
            public string Pessoa { get; set; }
            public int idProduto { get; set; }
            public int idCategoria { get; set; }

    }

    Na view, para "chamar" o método do seu controller, basta indicar o método do controller ao criar o formulário usando:

    Html.BeginForm("FazAlgumaCoisaComOsDadosPassados", "NomeDoController")

    Forte abraço,

    André Borges Medeiros
    MCPD, MCT


    quarta-feira, 21 de outubro de 2009 16:38
    Moderador

Todas as Respostas

  • Oi Juliana,

    Graças ao excelente trabalho que o algoritmo de "binding" do ASP.Net MVC faz, para "passar" os parâmetros dos campos da View para um método do Controller, basta que esse método do Controller tenha parâmetros com o mesmo nome que os campos da View.

    Exemplificando, se você tiver na sua página:

    Textbox com o nome: Pessoa
    Dropdownlists com os nomes: idProduto e idCategoria

    Você deve criar um método no Controller com a seguinte assinatura:

    public ActionResult FazAlgumaCoisaComOsDadosPassados(string Pessoa, int idProduto, int idCategoria)

    ou

    public ActionResult FazAlgumaCoisaComOsDadosPassados(MeusDados dados)

    No segundo caso, você deverá ter uma classe chamada "MeusDados", contendo propriedades públicas com o mesmo nome dos campos da View:

    public class MeusDados
    {
            public string Pessoa { get; set; }
            public int idProduto { get; set; }
            public int idCategoria { get; set; }

    }

    Na view, para "chamar" o método do seu controller, basta indicar o método do controller ao criar o formulário usando:

    Html.BeginForm("FazAlgumaCoisaComOsDadosPassados", "NomeDoController")

    Forte abraço,

    André Borges Medeiros
    MCPD, MCT


    quarta-feira, 21 de outubro de 2009 16:38
    Moderador
  • Através das orientações que você me passou, e pesquisando pela net para ver a correta sintaxe, consegui resolver
    esse problema.

    Obrigada pela ajuda André! ;)

    bjos
    quinta-feira, 22 de outubro de 2009 20:05