0
我在.NET 4.0 MVC 3應用程序有與該開始瞭如下動作的ErrorController
:什麼設置此MVC3操作方法的默認參數值?
public ActionResult Index(Exception error, int? functionId, string viewMessage)
{
if (error == null && string.IsNullOrEmpty(viewMessage))
return RedirectPermanent(_DefaultErrorHtm);
// ...
}
我設置此操作的自定義路線,但是當我要求的「http://本地主機/錯誤「,error
參數不是null
,但始終是System.Exception
沒有堆棧跟蹤。什麼提供了這個默認值,MVC 3或.NET 4.0?我怎樣才能防止它?
此操作的預期用途是我的自定義錯誤處理程序替換路徑字典,將控制器設置爲「錯誤」並將操作設置爲「索引」並提供正確的參數,並調用ErrorController.Execute
。有沒有更好的方法來防止用戶直接請求這條路線? ChildActionOnlyAttribute
不起作用,因爲替換路由字典並重新執行該控件將使其成爲父操作。
更新:我通過創建一個自定義路由來提供默認異常,我的應用測試而不是測試null。這導致我懷疑它是提供System.Exception
開始的MVC 3。
我認爲這是一個勝利者,但它不會工作,因爲我最後一段。當我清除路由字典並將其發送到錯誤控制器時,它不再是一個孩子,因此應用此屬性會產生一個帶有消息「操作'索引'僅可由子請求訪問的InvalidOperationException」。 – flipdoubt 2012-03-08 15:52:36