2

我的错误处理收集(一些手动,一些自动)在控制器执行期间产生的错误。然后我有一个呈现错误消息的局部视图。我将错误消息存储在 ViewData 中(如果我在 RedirectResult 中响应,则将它们传输到 TempData)。

问题是:如果子操作导致错误,它将不会被显示,因为它们(至少是页面下方的那些)是在呈现局部视图之后执行的。

现在,我唯一的、有点绝望的想法是将消息呈现为布局页面底部的 javascript,并让该 javascript 更新错误显示框。但它闻起来很糟糕,我不应该为此需要客户端代码。

在其他所有事情之后,有没有办法让部分视图“延迟渲染”?

4

1 回答 1

2

您可以尝试使用Html.Action结果并将结果存储在每个子操作的变量中。

完成后,您可以调用您Html.RenderPartial的“错误面板”。

@{
    var result = Html.Action("ChildAction"); 
}

@Html.Partial("ErrorMessages")

@result

然后通过放置变量而不是调用操作来恢复常规布局。

于 2012-11-09T02:01:43.357 回答