如果 Html.RenderAction 或 Html.Action 失败

本文关键字:Html 失败 Action RenderAction 如果 | 更新日期: 2023-09-27 18:33:07

所以页面中有部分,如果一个部分无法呈现,页面的其余部分呈现没有问题。 下一个请求,一切正常,或者至少在修复之前,所有站点都不会出现故障。这是由于SOA。

我想通过Html.RenderActionHtml.Action做同样的事情。

因此,如果我有@Html.RenderAction("Foo","Bar")并且调用失败,我仍然希望页面上的其他部分呈现。

这可能吗?如果是这样,该怎么做?尝试/报告/吞咽?

如果 Html.RenderAction 或 Html.Action 失败

创建帮助程序方法,例如要调用的Html.TryRenderActionHtml.TryAction,而不是分别调用Html.RenderActionHtml.Action

反过来,这些应该调用现有方法,但它们应该在try块中执行此操作,该块捕获并记录异常,而不会放弃页面的其余部分。

您可以在 Razor .cshtml 文件中使用标准的 C# try/catch/finally 块。

@{
    try
    {
        Html.RenderAction("asdfasdf");   
    }
    catch
    {
        Output.WriteLine("<p>Failed to load asdfasdf</p>");
    }
}