Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

204
Visualizações
Problemas al pasar un parámetro a una acción

Estoy tratando de pasar datos a una acción dentro del mismo controlador. Estoy usando RedirectToAction , pero no tengo éxito. Se llama a la acción pero los datos que estoy tratando de pasarle tienen sus valores null .

Mi modelo:

 public class PlaylistModel { public Guid PlayListID { get; set; } [Display(Name = "Nome da Playlist")] public string NomePlayList { get; set; } [Display(Name = "Descrição")] public string Descricao { get; set; } [Display(Name = "Código")] public string CodigoPlayList { get; set; } public string Estado { get; set; } public string EmailUser { get; set; } public List<VideoThumbnails> VideosIdsYoutube { get; set; } [Display(Name = "Categorias")] public List<string> Categorias { get; set; } }

Esta acción recibe los datos, realiza el procesamiento y llama a la otra acción.

 [HttpPost] public ActionResult CreatePlaylist(string Categorias, string NomePlayList) { PlaylistModel playListModel = new PlaylistModel(); playListModel.VideosIdsYoutube = AppCache.Instance.VideoParaAPI.VideoThumbnails.ToList(); playListModel.Categorias = Categorias.Split(',').ToList(); playListModel.NomePlayList = NomePlayList; playListModel.Estado = EnumEstadoDaPlayList.Nova.ToString(); playListModel.EmailUser = AppUser.User.Email; var api = new AccessAPI.Playlist.AccessAPIPlaylist(); var playlist = api.CriarNova(playListModel); if(playlist != null) { return RedirectToAction("ExibirPlaylist", new RouteValueDictionary(new { controller = "Playlist", action = "ExibirPlaylist", pPlayList = playlist })); } else { return Problem("Não foi possível criar a playlist!"); } }

Esta otra acción es llamada por la anterior, pero el modelo llega con valores null

 [HttpGet] public ActionResult ExibirPlaylist(PlaylistModel pPlayList) { var apiVideo = new AccessAPI.Video.AccessAPIVideo(); var videos = apiVideo.ConsultarPorPlayListId(pPlayList.PlayListID).ToList(); if(videos.Count > 0) { videos.ForEach(v => { pPlayList.VideosIdsYoutube.Add(new Dommain.Cache.VideoThumbnails() { CanalID = v.CanalID, DataDePublicacao = v.DataDePublicacao, NomeDoCanal = v.NomeDoCanal, NomeDoVideo = v.NomeDoVideo, Thumbnail = v.Thumbnail, VideoId = v.VideoIdYoutube}); }); } return View(); }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

RouteValueDictionary en RedirectToAction() pasa solo tipos simples, como string , int , etc. RedirectToAction() no serializa los tipos de datos complejos. Por lo tanto, puede ser la forma más fácil de usar TempData .

En CreatePlaylist(string Categorias, string NomePlayList) :

 TempData["playListModel"] = playlist; return RedirectToAction("ExibirPlaylist");

Y entonces:

 [HttpGet] public ActionResult ExibirPlaylist() { if (TempData["playListModel"] is PlaylistModel pPlayList) { // Your code using `pPlayList` } return View("Index"); }

El MVC usa la serialización binaria, por defecto. Y en algunos casos, la serialización binaria puede fallar: el almacenamiento de objetos (cosas que no son cadenas) en TempDataDictionary no funciona correctamente . Por lo tanto, es preferible serializar el objeto especificado en una cadena JSON mediante JsonConvert.SerializeObject() .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda