2011-10-04 34 views
0

問題通過以下步驟進行描述。使用區域時遇到問題,不確定路由或web.config設置是否有問題

  1. 使用Internet應用程序模板創建一個新的ASP.NET MVC3 Web應用程序。
  2. 用Authorize裝飾HomeController類。
  3. 運行應用程序,基本上需要你http://localhost:51578/Account/LogOn?ReturnUrl =%2F目前爲止的一切都很好。

讓我們在這個項目中定製一些東西。

  1. 在此解決方案中添加一個名爲「登錄」的區域,並將AccountController.cs,AccountModel.cs和整個帳戶文件夾移到瀏覽器下的該區域下的相應文件夾中。
  2. 現在運行應用程序,你會得到以下錯誤

說明:在當前Web請求的執行過程中發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.InvalidOperationException:未找到'LogOn'或其主控視圖,或者沒有視圖引擎支持搜索的位置。以下地點搜索: 〜/查看/帳號/ LogOn.aspx
〜/查看/帳號/ LogOn.ascx
〜/查看/共享/ LogOn.aspx
〜/查看/共享/ LogOn.ascx
〜/查看/帳號/ LogOn.cshtml
〜/查看/帳號/ LogOn.vbhtml
〜/查看/共享/ LogOn.cshtml
〜/查看/共享/ LogOn.vbhtml

我需要修改web.config中的任何內容或路由以使其工作?

回答

1

authorize屬性將您重定向到LogOn頁面,該頁面在Login區域之外的View文件夾中找不到。如果您在登錄區域和LoginRegisterArea中移動HomeController,則您將有效的路由添加到家庭控制器,它將起作用。

我試圖做你想做的事情,但我發現的唯一解決方案是讓你要授權的控制器和LogOn視圖在同一個地方。我之前提到的有關保持控制器和LogOn視圖獨立解鎖的解決方案。

也許有人可以找到一個解決方案,完成你真正想要的。

+0

那麼這就是整個問題,我想將LogOn相關的代碼移到單獨的區域,以便更好的代碼組織,同時保持其他東西分離(並可能在未來添加到另一個區域或其他東西)。 –

+0

感謝Bogdan的建議,但是當我修改LoginAreaRegistration時,在'/'應用程序中出現以下錯誤服務器錯誤。不知道我需要在AccountController中進行修改。有任何想法嗎? 找不到資源。 描述:HTTP 404.您正在查找的資源(或其某個依賴項)可能已被刪除,名稱已更改或暫時不可用。請檢查以下網址並確保它拼寫正確。 –