2013-09-26 50 views
-1

因此,您在頁面中有各個部分,並且如果某個部分無法呈現,則頁面的其餘部分呈現沒有問題。下一個請求,一切正常,或者至少在修復之前,所有網站都不會停止。這是由於SOA。如果Html.RenderAction或Html.Action失敗

我想通過Html.RenderActionHtml.Action做同樣的事情。

所以如果我有@Html.RenderAction("Foo","Bar"),並且如果調用失敗,我仍然希望頁面上的其他部分呈現。

這是可能的嗎?如果是這樣怎麼辦?嘗試/報告/下嚥?

+0

你在這家最大的互聯網公司使用過哪些技術? –

+2

哇。你問一個問題,我試圖深入並得到這種答案?我可以從一個新手,而不是像你這樣的用戶期望這一點。回到雅虎答案,天才。 –

+0

對不起,如果我傷害你的感情。感謝downvote。 – DarthVader

回答

5

創建的helper方法,說Html.TryRenderActionHtml.TryAction被分別稱爲代替Html.RenderActionHtml.Action

反過來,這些應該調用現有的方法,但它們應該在try塊內部執行,以捕獲並記錄異常而不會放棄頁面的其餘部分。

5

您可以在Razor .cshtml文件中使用標準的C#try/catch/finally塊。

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

對於Output.WriteLine +1 –