我正在尝试使用数据库中的一些数据加载部分视图,但在运行应用程序时遇到以下问题:
不允许子操作执行重定向操作。
我不知道为什么会发生这种情况,因为我对 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!");
}
这是我的partialview本身,它被称为_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")
to @Url.Action("UnreadEmails", "Message")
等等,但这并没有解决我的问题。
编辑:它总是在这一行中断(在视图中):
@Html.Action("UnreadEmails", "Message")
It never goes into code behind..
在克里斯的建议之后我添加了[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 方法的开头放置了断点,但它从未被击中,它总是在视图上中断!