Ações filho não têm permissão para executar ações de redirecionamento. (Usando PartialViews)
Estou tentando carregar minha exibição parcial com alguns dados do banco de dados, mas estou obtendo o seguinte problema ao executar o aplicativo:
Ações filho não têm permissão para executar ações de redirecionamento.
Não sei por que isso está acontecendo porque sou bastante novo com a tecnologia MVC.
Aqui está o meuPartialViewResult
método em um controlador:
public PartialViewResult UnReadEmails()
{
if (User.Id != null)
{
List<Emails> resultList = EmailController.GetUnreadEmailsByUserId(User.Id);
return PartialView("~/Views/Emails/_UnReadEmails.cshtml", resultList);
}
return PartialView("Error, not found!");
}
E aqui está minha própria vista parcial, chamada _UnReadEmails (como você pode ver, estou exibindo aqui informações sobre o corpo do remetente e do email), o PartialView está recuperando a lista de emails que estou enviando do meu Controller
@model IEnumerable<Emails>
foreach (var item in Model)
{
<li>
<a>
<span>
<span>@item.EmailSender</span>
<span class="email">
@item.Body;
</span>
</a>
</li>
}
Depois que tentei carregar minha visão parcial dessa maneira:
@Html.Action("UnreadEmails", "Message")
Comecei a receber o seguinte problema mencionado no meu título,
Eu já tentei algumas coisas para resolver isso, como mudar@Html.Action("UnreadEmails", "Message")
para@Url.Action("UnreadEmails", "Message")
etc etc, mas isso não resolveu o meu problema.
EDIT: sempre quebra nesta linha (na exibição):
@Html.Action("UnreadEmails", "Message")
Ele nunca entra em código por trás ..
Após a sugestão de Chris, adicionei[AllowAnonymous]
na parte superior do método:
[AllowAnonymous]
public PartialViewResult UnReadEmails()
{
if (User.Id != null)
{
List<Emails> resultList = EmailController.GetUnreadEmailsByUserId(User.Id);
return PartialView("~/Views/Emails/_UnReadEmails.cshtml", resultList);
}
return PartialView("Error, not found!");
}
EDIT EDIT EDIT:
O fato interessante é que tudo o que escrevi no método do meu Controlador e, mesmo que eu comente todo o código, ele ainda será interrompido em uma Visualização, o que significa que nunca entrou no método de um Controlador. Eu coloquei breakpoing lá no início do método UnReadEmails e ele nunca foi atingido, sempre quebra em um View!