-1

因此,您在页面中有部分,如果一个部分无法呈现,则页面的其余部分将毫无问题地呈现。下一个请求,一切正常,或者至少在修复之前,所有站点都不会关闭。这是由于 SOA。

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

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

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

4

2 回答 2

5

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

@{
    try
    {
        Html.RenderAction("asdfasdf");   
    }
    catch
    {
        Output.WriteLine("<p>Failed to load asdfasdf</p>");
    }
}
于 2013-09-26T19:24:48.093 回答
5

创建辅助方法,比如分别调用Html.TryRenderActionHtml.TryAction代替和。Html.RenderActionHtml.Action

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

于 2013-09-26T19:25:19.827 回答