![](/img/trans.png)
[英]Project WPF .Net 3.5 in visual studio 2010 cause error
[英]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.