В случае, если у нас нет «основной модели», мы можем сохранить ее в ViewBag, вызывая это из метода контроллера MessageController / Email
аюсь загрузить свое частичное представление с некоторыми данными из базы данных, но у меня возникает следующая проблема при запуске приложения:
Дочерним действиям не разрешено выполнять действия перенаправления.
Я не знаю, почему это происходит, потому что я довольно новичок в технологии 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!");
}
РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ:
Интересным фактом является то, что все, что я написал в методе моего контроллера, и даже если я прокомментирую весь код, он все равно будет нарушать представление, это означает, что он никогда не попадет в метод контроллера. Я поставил точку останова в начале метода UnReadEmails, и он никогда не срабатывал, он всегда ломается в View!