Las acciones secundarias no pueden realizar acciones de redireccionamiento. (Usando PartialViews)
Estoy tratando de cargar mi vista parcial con algunos datos de la base de datos, pero tengo el siguiente problema cuando ejecuto la aplicación:
Las acciones secundarias no pueden realizar acciones de redireccionamiento.
No sé por qué sucede esto porque soy bastante nuevo con la tecnología MVC.
Aquí está miPartialViewResult
método en un 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!");
}
Y aquí está mi vista parcial en sí, se llama _UnReadEmails (como puede ver, estoy mostrando aquí información sobre el remitente y el cuerpo del correo electrónico), PartialView está recuperando la lista de correos electrónicos que estoy enviando desde mi controlador
@model IEnumerable<Emails>
foreach (var item in Model)
{
<li>
<a>
<span>
<span>@item.EmailSender</span>
<span class="email">
@item.Body;
</span>
</a>
</li>
}
Después de intentar cargar mi vista parcial de esta manera:
@Html.Action("UnreadEmails", "Message")
Comencé a recibir el siguiente problema que mencioné en mi Título,
Ya intenté algunas cosas para resolver esto, como cambiar@Html.Action("UnreadEmails", "Message")
a@Url.Action("UnreadEmails", "Message")
etc, etc. pero eso no resolvió mi problema.
EDITAR: siempre se rompe en esta línea (a la vista):
@Html.Action("UnreadEmails", "Message")
Nunca entra en código detrás ...
Después de la sugerencia de Chris agregué[AllowAnonymous]
en la parte superior del 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!");
}
EDITAR EDITAR EDITAR:
Un hecho interesante es que lo que escribí en el método de mi Controlador e incluso si comento todo el código, se romperá en una Vista, eso significa que nunca entrará en el método de un Controlador. Puse breakpoing allí al comienzo del método UnReadEmails y nunca fue golpeado, ¡siempre se rompe en una vista!