ASP NET – Controller – Usando QueryString – MVC – C#

Publicado: 18 de maio de 2015 em C#

No ASP.NET tradicional nós podemos utilizar a instrução chamada QueryString para obter uma coleção de variáveis de string de consulta HTTP. Nas variáveis de cadeia de consulta enviada pelo cliente, as chaves e valores são descodificados na URL. Isto quer dizer que QueryString retorna os valores dos clássicos parâmetros usados na URL que utilizamos para consultas HTTP.  No ASP.NET MVC não precisamos utilizar a instrução QueryString para obter os valores dos parâmetros em uma pesquisa, podemos defini-los diretamente na rota da URL e utiliza-los diretamente na ação do controlador.

Você utiliza o MapRoute para mapear suas rotas, esse membro é um membro sobrecarregado. Para obter informações completas sobre esse membro, incluindo sintaxe, uso e exemplos, clique em um nome na lista de sobrecarga encontrada no link abaixo.

MapRoute: Mapeamento de Rotas

Utilizando Parâmetros nas Rotas

1 – Crie um novo projeto ASP.NET MVC utilizando o Template padrão e rode sua aplicação. Volte para o Visual Studio e no arquivo de rotas crie uma nova rota, e defina o parâmetro chamado linguagem,  defina o controlador  e sua ação de resultado. Crie um novo controlador chamado ProgramasController.cs e preencha sua ação, utilize o código abaixo em seus respectivos arquivos.

ASP.NET MVC - Home

ASP.NET MVC – Home

2 – Você pode digitar o nome do seu controlador para acionar a rota e exibir a mensagem ao usuário:

MVC  - Rota - Programas

MVC – Rota – Programas

3 – Você pode adicionar um parâmetro na URL no qual criamos anteriormente, a ação executara a QueryString automaticamente, e reconhecerá o parâmetros utilizado e o retornará para que seja exibido na página.

MVC - QueryString

MVC – QueryString

Exemplo:

Neste exemplo utilizamos o parâmetro da rota e o recuperamos na ação de resultado do controlador.

C#

RouteConfig.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MeuMVC
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            // Cria uma nova rota para o controlador

            // Define controlador e parâmetros
            routes.MapRoute("Programas", "programas/{linguagem}",
                new { controller = "Programas", action = "Indice", 
                    
                    // Parâmetro opcional
                    linguagem =  UrlParameter.Optional
                     
                });

            routes.MapRoute(
                name: "Default", 
                
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

ProgramasController.cs

using MeuMVC.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MeuMVC.Controllers
{
    public class ProgramasController : Controller
    {
        // Utiliza parâmetro diretamente na ação definida na rota.
        public ActionResult Indice(string linguagem)
        {
            // Exibe Mensagem
            var mensagem = "Linguagem: " + Server.HtmlEncode(linguagem);                          
            
            return Content(mensagem);
        }
       
    }
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s