因此,您在页面中有部分,如果一个部分无法呈现,则页面的其余部分呈现没有问题。下一个请求,一切正常,或至少直到它被修复,所有网站都没有下降。这是由于SOA。
我想通过Html.RenderAction
或Html.Action
做同样的事情。
所以,如果我有@Html.RenderAction("Foo","Bar")
并且如果调用失败,我仍然希望页面上的其他部分呈现。
答案 0 :(得分:5)
您可以在Razor .cshtml文件中使用标准的C#try / catch / finally块。
@{
try
{
Html.RenderAction("asdfasdf");
}
catch
{
Output.WriteLine("<p>Failed to load asdfasdf</p>");
}
}
答案 1 :(得分:5)
创建帮助方法,比如说Html.TryRenderAction
和Html.TryAction
分别称为,而不是Html.RenderAction
和Html.Action
。
反过来,这些应该调用现有的方法,但它们应该在try
块内部执行,捕获并记录异常,而不会放弃页面的其余部分。