В случае, если у нас нет «основной модели», мы можем сохранить ее в 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!

Ответы на вопрос(4)

Ваш ответ на вопрос