簡體   English   中英

Visual Studio 2010 ///.NET MVC應用程序-空白項目出現404錯誤

[英]Visual Studio 2010 //.NET MVC Application - 404 Error on blank project

我在vs2010中創建了一個空的mvc項目,並創建了一個視圖(MessageView),一個控制器和一個模型。 由於某種原因,當我構建應用程序(將視圖設置為起始頁)時,它似乎拋出404錯誤並將以下內容附加到URL:

http://localhost/MvcApplication1/**Account/LogOn?ReturnUrl=%2fMvcApplication1%2fViews%2fMessageView.aspx**

研究完web.config文件后,可以看到以下代碼:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

這已自動添加。...不完全確定為什么要考慮單擊空的MVC項目。 任何人都知道解決此問題的最干凈的方法。

編輯

已解決:問題是我將MessageView移到了.NET放置在其中的Views子目錄中。 我必須將視圖放置在項目目錄的根目錄中,以便它能夠找到並顯示它。 我還必須從web.config文件中刪除上面的代碼。

將其放在子目錄中時,如何使其工作

只需將Web選項卡上項目屬性中的Start Action值從默認值Current Page更改為其他值即可。

您不想訪問視圖,您想訪問控制器。 這不是錯誤,而是MVC的工作方式。 您的網址應為:

http:// localhost / MvcApplication1 / ControllerName

http://localhost/MvcApplication1/Views/MessageView.aspx

更新資料

這是正在發生的事情。 您從一個空白項目開始。 這意味着您沒有帳戶控制器。

MVC不允許Web服務器在/ Views(/Views/Whatever.aspx)中公開您的原始視圖文件。 當您嘗試訪問它時,它將導致返回403禁止的標頭。

ASP.NET通過重定向到/ Account / LogOn(AccountController的LogOn操作方法)來處理403。 由於您有一個空白項目,並且沒有AccountController,這就是導致404錯誤的原因。

另一個更新

只需閱讀您已解決的問題即可。 同樣,您不能訪問“視圖”,“控制器”或“模型”文件夾中的文件。 這些是MVC使用的特殊文件夾。

如果要訪問子目錄中的視圖,請創建一個子目錄,例如/ content或/ scripts。 MVC將它們視為普通文件夾,您可以從其中訪問任何內容。 因此,您可以將文件放在這樣的文件夾中:

/SubdirectoryAbc/MessageView.aspx。

然后,您應該能夠使用URL http://localhost/MvcApplication1/SubdirectoryAbc/MessageView.aspx訪問此文件。

但是,您將無法在控制器操作方法中使用該視圖。

問題在於,由於MVC具有路由功能,因此它對文件結構使用約定。 如果要將視圖移動到另一個文件夾,則需要自定義路由代碼以正確映射到您的文件夾結構。 老實說,我認為這不值得您花時間。

您可以刪除整個部分;

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

這將禁用默認情況下使用MVC放置到站點上的身份驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM