none
Como envio o Id de utilizador usado para a View RRS feed

  • Pergunta

  • Ola, estou a desenvolver uma pagina web de um ginasio em Asp.net core mas ainda estou a apreender a linguagem.

    A pagina tem três tipos de utilizadores os socios, o administrador e os professores, cada um tem uma classe diferente.

    Entao, quando faço login com qualquer um tipo de utilizador e tento aceder ao seu perfil aparece este erro :

    NullReferenceException: Object reference not set to an instance of an object.
    AspNetCore.Views_Socios_PerfilSocio.ExecuteAsync() in PerfilSocio.cshtml|

    Suponho que isso esteja a acontecer porque nao estou a dizer a view qual é o id do usuario logado, entao o programa nao me consegue mostrar os seus dados na view details nem editar o seu perfil.

    Entao no controller na função do perfil do socio tenho :

    public IActionResult PerfilSocio(Socios socio) { HttpContext.Session.SetInt32("UserId", socio.Idsocio); return View("PerfilSocio"); } 

    E estou a tentar enviar o id do socio logado para a view para que ela consiga me mostrar os detalhes, apagar ou editar os dados daquele usario.

    Alguem tem alguma ideia de como posso enviar o id para a view de modo a conseguir resolver isso ?

    quinta-feira, 23 de janeiro de 2020 23:27

Todas as Respostas

  • Diana_, bom dia!

    O envio de valores para a view é feito através do ViewBag que pode ter a variável que quiser. Exemplo:

    @ViewBag.ID = 159

    Neste caso você terá acesso a uma propriedade chamada ViewBag.ID na view se colocar esse código no controller na action que o chama a view. Não há necessidade de declaração da variável e ela recebe qualquer tipo de dados logo você pode enviar objetos de todos os tipos. Exemplo: 

    public ActionResult Edit(long? id)
    {

    ViewBag.AttachmentFile = "NomedoArquivoAqui"; //pode ser uma variável
    ViewBag.IsMp3File = true;

    return View();

    }

    Na view com código Razor

    @if (@ViewBag.AttachmentFile != "")
    {

    @Html.Raw("Variável enviada do controle contém dados? AttachmentFile: " + @ViewBag.AttachmentFile)

    }

    sexta-feira, 24 de janeiro de 2020 13:09