在ASP.NET MVC應用程序,當我們腳手架在Visual Studio中的控制器,我們得到的默認操作:爲什麼在某些默認MVC操作中id可爲空?
- 指數
- 創建
- 刪除
- 編輯
- 詳細
上面幾個參數有一個可爲空的id(int? id
):Details,Edit(GET version),Del ete,DeleteConfirmed。然後,至少在一些,有下面的代碼,以確保該ID不爲null:
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
所有這些操作都需要一個ID;它不是可選的。您不能顯示任何內容或不刪除任何內容等。另外,如果狀態碼爲空,我們將生成一個BadRequest
狀態碼。
那麼,爲什麼這些參數不是可以爲空的整數呢?
Url是字符串,「id」是一個int。當路由中的參數不能轉換爲int時會發生什麼?是否應該是一些一般性錯誤,或者您的控制器是否應該指定如何處理無效(即空)的ID? – maccettura
謝謝,@maccettura。但如果它是空的,我們應該拋出一個異常讓用戶知道。還是應該通過Visual Studio爲我們生成的檢查來檢測它? – Alex
你應該總是拋出異常嗎?是否有應該發生的特殊處理?它應該被記錄?包含在MVC代碼中的樣板代碼僅僅是一個建議,並不是必需的。 – maccettura