Я пытаюсь загрузить частичное представление с некоторыми данными из базы данных, но при запуске приложения у меня возникает следующая проблема:
Действия ребенка не разрешены для выполнения действий перенаправления.
Я не знаю, почему это происходит, потому что я довольно новичок в технологии MVC.
Вот мой метод PartialViewResult
в контроллере:
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!");
}
И вот мое частичное представление, оно называется _UnReadEmails (как вы можете видеть, я показываю здесь информацию об отправителе и телеобъекте), PartialView извлекает список писем, которые я отправляю с моего контроллера
@model IEnumerable<Emails>
foreach (var item in Model)
{
<li>
<a>
<span>
<span>@item.EmailSender</span>
<span class="email">
@item.Body;
</span>
</a>
</li>
}
После того, как я попытался загрузить мой частичный вид следующим образом:
@Html.Action("UnreadEmails", "Message")
Я начал получать следующую проблему, о которой я упоминал в своем названии,
Я уже пробовал несколько вещей, чтобы решить это, как изменение @Html.Action("UnreadEmails", "Message")
на @Url.Action("UnreadEmails", "Message")
и т.д., но это не решило мою проблему.
РЕДАКТИРОВАТЬ: он всегда ломается в этой строке (на вид):
@Html.Action("UnreadEmails", "Message")
Он никогда не переходит в код позади.
После предложения Криса я добавил [AllowAnonymous]
в начало метода:
[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:
Интересным фактом является то, что все, что я написал в моем методе Controller, и даже если я прокомментирую весь код, он все равно будет разбит на View, это означает, что он никогда не войдет в метод Controller. Я положил туда вызов в начале метода UnReadEmails, и он никогда не попадал, он всегда ломается на View!