簡體   English   中英

繼續的MVC區域404錯誤。 機智的盡頭

[英]Continued MVC Area 404 error. At wit's end

[編輯]代碼和解決方案根據論壇成員的建議進行了編輯。 我已經更正了控制器的名稱。 這是不正確的。 更正的名稱顯示在更新的解決方案文件快照中。 我收到一個新錯誤。 新錯誤顯示在更新的快照中。 仍然是404類型錯誤。

至於“發布您的路由編輯”類型的注釋,請注意原始聲明,Visual Studio已為我完成了所有連接。 據我了解,如果我從IDE中右鍵單擊並添加控制器,視圖等,則不需要進入后台進行額外的連接。 這似乎破壞了易於實現的界面的全部目的。 如果我誤會了,請糾正我。 謝謝。[END EDIT]

我較早前就此問題尋求幫助,但沒人能解決。 我已經對解決方案進行了重新設計,刪除了所有涉及的內容並重新開始,希望可以解決該問題。 我仍然被卡住。 根據我在MVC上閱讀的所有內容,這是一件非常簡單的事情,但是我已經死了一個多星期。 希望能對此有所幫助。 我重新設置的代碼顯示在下面。 我查看了這些論壇中報告的類似錯誤,但沒有任何幫助。

請注意,所有的聯結都是由Visual Studio完全完成的:除了向控制器添加Action方法之外,我沒有在后台修改任何生成的代碼。 換句話說,一切都是通過右鍵單擊VS並選擇“添加”並按照視圖,控制器等的提示生成的。

我在一個區域“ UserAccount”中有一個視圖,該視圖使用Html.ActionLink()生成到另一個區域“ DocumentUploaderNew”中的視圖的鏈接。 標記的屏幕快照如下。 但是,當我單擊IE中的呈現按鈕時,出現了一個似乎是“ 404”錯誤的錯誤。 視圖在那里。

這使GOT成為一個尷尬的簡單答案。 我准備吃不起眼的餡餅。 它是什么???

更新的解決方案Html.ActionLink()調用新的控制器代碼新錯誤

那是因為您的控制器實際上是命名為FileUpload ,但是您正在嘗試使用控制器名稱FileUploaderNew (看起來您對操作和控制器名稱感到困惑)。

嘗試這個:

@Html.ActionLink("Upload New", "FileUploaderNew", new { controller = "FileUpload", area = "DocumentUploaderNew" }, new { @class = "btn btn-info" })

失敗的原因是因為您的視圖FileUploaderNew.cshtml位於Views文件夾的根目錄中,而不是位於文件夾本身(帶有控制器名稱或共享視圖文件夾的文件夾)中。 如果您在錯誤屏幕快照中查看了MVC正在檢查的路徑,則可以看到它從未檢查路徑~/Areas/DocumentUploaderNew/Views/FileUploaderNew.cshtml

您可以采取多種修復措施來解決此問題(選擇一項,而不是全部三種)。

  1. 在Views文件夾中創建一個名為FileUploaderNew的文件夾,然后將FileUploaderNew.cshtml文件移動到該文件夾​​中(基本上,您在views文件夾中創建一個具有匹配控制器名稱的子文件夾。當從以下位置返回View時,視圖引擎將查找該文件夾:該控制器)。
  2. FileUploaderNew.cshtml文件移動到Views文件夾內的Shared文件夾中(您可以在屏幕快照中看到它)。
  3. 在調用Return View()時,確切指定視圖的位置:

return View("~/Areas/DocumentUploaderNew/Views/FileUploaderNew.cshtml");

根據您的路線,

@Html.ActionLink("Upload New", "FileUploaderNew", new { controller = "FileUpload/FileUploaderNew"}, new { @class = "btn btn-info" })

要么

@Html.ActionLink("Upload New", "FileUploaderNew", new { controller = "DocumentUploader/Controllers/FileUpload/FileUploaderNew"}, new { @class = "btn btn-info" })

關鍵是您必須將其發布到控制器的路徑(而不是名稱),如果找不到,則找不到它並得到404。在默認的MVC文件結構中,我相信這是自動化的(控制器中的控制器目錄自動映射(不帶路徑),但這不是您的文件結構。

另外,我要回答的是從未使用過的區域,不確定這些因素是否包含在公式中,但是快速閱讀似乎表明它們比查找它們更能鎖定路徑。

暫無
暫無

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

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