我的错误处理收集(有些是手动的,有些是自动的) Controller 执行期间产生的错误。然后我有一个部分 View ,可以呈现错误消息。 我将错误消息存储在 ViewData 中(如果我在 RedirectResult 中响应,则将它们传输到 TempData)。
问题是:如果子操作导致错误,它将不会显示,因为它们(至少是页面下方的操作)是在渲染部分 View 后执行的。 p>
现在我唯一的、有点绝望的想法是将消息渲染到布局页面底部的 javascript 中,并让 javascript 更新错误显示框。但它闻起来很糟糕,我不需要为此编写客户端代码。
在完成所有其他操作之后,有没有办法让部分 View “延迟渲染”?
最佳答案
您可以尝试使用 Html.Action
并将结果存储在每个子操作的变量中。
完成后,您可以为“错误面板”调用 Html.RenderPartial
。
@{
var result = Html.Action("ChildAction");
}
@Html.Partial("ErrorMessages")
@result
然后您可以通过放置变量而不是调用操作来恢复常规布局。
关于asp.net-mvc - 处理 MVC 子操作中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13275101/