2011-02-02 60 views
5

我現在有這個控制器功能:嘗試編輯不存在的項目的最佳做法?

public ViewResult Edit(int id) 
{ 
    //get user from id 
    var user = _adminRepository.GetUser(id); 

    return View(user); 
} 

目前這給我一個錯誤我的視圖頁面上,如果我嘗試在沒有與100在一個id沒有用戶與100的ID,編輯項目數據庫。

處理此問題的最佳做法是什麼?將它們發送到創建頁面,或顯示友好的錯誤消息?該重定向功能應該在控制器功能內嗎?

回答

5

我會顯示一條友好的錯誤消息,告訴他們用戶已被刪除,並提供創建用戶頁面的鏈接,如果他們想重新創建用戶。

我反對將用戶重定向到他們本不打算去的任何地方,因此當他們期望轉到編輯用戶屏幕時,自動將他們重定向到「創建用戶」屏幕(我假設他們是分開的)不是用戶最友好的解決方案。

1

我認爲你應該將它們重定向到創建頁面,並附加額外的信息,說明它們爲什麼被重定向。

6

IMO它應該引發404錯誤。在所有用戶請求不存在的資源之後,就像常規網頁一樣。

+0

同意。網站上的任何內容都不應該*鏈接到此頁面(因爲它不存在),因此唯一的方法是手動。應該是404. – RPM1984 2011-02-02 00:22:17

+0

@ RPM1984 - 這個想法是我有一個用戶網格,每個用戶都有一個編輯按鈕。我們遇到了一些用戶被某人刪除的問題,然後有人點擊了他們打開了一段時間的網頁上的「編輯」按鈕,導致錯誤。 – Steven 2011-02-02 00:24:07

1

根據您對@ RPM1984的回覆,我認爲您的問題與Update Action有關,因爲您已經打開了該視圖。我建議你重定向到友好的錯誤頁面,說「你試圖更新的用戶不存在。」當你點擊保存,然後找出用戶不在那裏了。通過鏈接返回到您的網格並查看最新的一組用戶。

本頁面也將是有幫助的一些用戶可能會嘗試訪問該網址,而不是直接使用網格..

一些可以鍵入

http://mysite.com/users/edit/215215132

,其中215215132是你的userId。

我只是假設你是這麼做的。

相關問題