SELECT CASE NO MVC CONTROLLER

MOZARTJUNIOR 25/07/2016 14:53:31
#465117
Na minha página index (usuario) mostror na grid os usuarios já cadastrados, sendo que tenho 2 campos que são número e queria mostrar o nome e não o número, exemplo campo tipo de usuário pode ser ( 1 - Estudante, 2 - Avulso) no campo categoria pode ser ( 1 -urbano, 2 - metropolitano, 3 - Outros).

Estou usando pagedList o wizard criou já as consultas sendo que como ele monta não consigo incluir o case nela veja consulta abaixo :
usuario = db.usuario.include(u => u.centrocusto).include(u=> u.departamento), onde os includes são as tabelas relacionadas como faço o case ?

JABA 25/07/2016 18:47:03
#465126
Resposta escolhida
Não deu pra entender direito. Ponha a parte de seu codigo relacionado a isso e explique de forma detalhada o que você necessita. Se possível, tire um print da tela e publique aqui. Desta forma aí ficou muito vago.

Citação:

usuario = db.usuario.include(u => u.centrocusto).include(u=> u.departamento),



Por exemplo, que tipo de dados está aparecendo nessa variavel [Ô]usuario[Ô]?

MOZARTJUNIOR 26/07/2016 08:42:35
#465142
Na minha tabela de usuário tenho dois campos que são smallint e não tenho a necessidade de ter outra tabela para fazer o relacionamento, no index mostro em uma grid os usuários já cadastrados, porém não fica muito compreensível para o usuário ver uma coluna [Ô]tipo Usuário[Ô] mostrando um número, será mais didático mostrar o que essa coluna representa que no caso seria (Estudante / Avulso) o que quero é que no select ao invés de mostrar o campo o valor, que seja mostrado um nome, para isso uso o case, que em linq é assim : select new {campo = u.tipo == 1 ? [Ô]Urbano[Ô] : u.tipo == 2 : [Ô]Metro[Ô] : [Ô][Ô]}
JABA 26/07/2016 13:05:11
#465157

Citação:

[txt-color=#e80000]usuario[/txt-color] = db.usuario.include(u => u.centrocusto).include(u=> u.departamento)



Ok. Entendi o que você quer. Agora só falta saber que dados estão na variável [Ô]usuário[Ô]. é uma instância da classe usuário? é uma lista? Quais dados estão aparecendo nela? Após essas informações, acho que vai dar pra solucionar o seu caso.
MOZARTJUNIOR 26/07/2016 15:37:17
#465160
é uma lista, já que vou mostrar todos os usuários cadastrados.
JABA 26/07/2016 17:02:50
#465163
Se é uma lista, então você vai ter que percorre-la. Vou supor que seja uma lista de números, pois você não especificou a estrutura dela.

forech (int valor in [txt-color=#e80000]usuario[/txt-color]) {

switch (valor)
{
case 1:
Console.WriteLine([Ô]Case 1[Ô]);
break;
case 2:
Console.WriteLine([Ô]Case 2[Ô]);
break;
default:
Console.WriteLine([Ô]Default case[Ô]);
break;
}
}


é só adaptar para o seu caso
MOZARTJUNIOR 03/08/2016 15:08:13
#465440
Como vou exibir esse valor na view ?
JABA 03/08/2016 16:14:44
#465445
Basicamente o Algoritmo é esse:

Primeiro você percorre a lista, conforme foi explicado acima, formate-a como deseja, depois passe-a para a view. Talvez seja necessário criar uma lista temporária para fazer tal formatação.

Ex:

return View(listaFormatada); //aqui é como os dados estão saindo do controller para a view.

Após isso, esses dados chegarão até a sua view e lá você terá que tratar como eles devem ser visualizados.
Tópico encerrado , respostas não são mais permitidas