假設我們已經實現了我們的路線,支持網址,這樣MVC應用程序中不存在的內容 - 返回給訪問者/用戶的內容是什麼?
/content/5
/news/10
或者我們甚至使用蛞蝓。無論我們使用什麼內容標識符,用戶應該返回哪些不存在的內容?
例如,用戶請求/新聞/ 10,我們的控制器有這樣的代碼:
public virtual ActionResult Display(int id, string slug)
{
return View(_repository.Find(id));
}
上面很可能會導致異常時find()方法返回null。 我們有什麼選擇跳到那裏並嘗試解決這個問題?
- 做
if..then
檢查在控制器動作和直接用戶的一些默認頁面(也許如果這樣的列表,並查看存在的整體內容列表), - 返回自定義(友好)500結果(實際上是將自定義HTTP錯誤處理,所以500將始終重定向到自定義友好頁面),
- 返回自定義(友好)404結果(類似於選項2,但表明內容不存在)?
我們可以將錯誤解釋爲內部應用程序錯誤或內容未找到錯誤。你認爲哪一個更好選擇?
管理頁面也一樣 - 在那裏做什麼?在這種情況下,我更傾向於實際將用戶重定向到儀表板或內容列表。
請分享你的想法