因此,您在页面中有部分,如果一个部分无法呈现,则页面的其余部分将毫无问题地呈现。下一个请求,一切正常,或者至少在修复之前,所有站点都不会关闭。这是由于 SOA。
我想通过Html.RenderAction
or做同样的事情Html.Action
。
所以如果我有@Html.RenderAction("Foo","Bar")
并且如果呼叫失败,我仍然希望页面上的其他部分呈现。
这可能吗?如果是这样怎么做?尝试/报告/吞下?
因此,您在页面中有部分,如果一个部分无法呈现,则页面的其余部分将毫无问题地呈现。下一个请求,一切正常,或者至少在修复之前,所有站点都不会关闭。这是由于 SOA。
我想通过Html.RenderAction
or做同样的事情Html.Action
。
所以如果我有@Html.RenderAction("Foo","Bar")
并且如果呼叫失败,我仍然希望页面上的其他部分呈现。
这可能吗?如果是这样怎么做?尝试/报告/吞下?
您可以在 Razor .cshtml 文件中使用标准 C# try/catch/finally 块。
@{
try
{
Html.RenderAction("asdfasdf");
}
catch
{
Output.WriteLine("<p>Failed to load asdfasdf</p>");
}
}
创建辅助方法,比如分别调用Html.TryRenderAction
和Html.TryAction
来代替和。Html.RenderAction
Html.Action
反过来,它们应该调用现有的方法,但它们应该在一个try
块内执行此操作,该块捕获并记录异常而不放弃页面的其余部分。