簡體   English   中英

將MVC應用程序作為子應用程序運行?

[英]Running an MVC Application as a Sub-Application?

我正在嘗試創建一個MVC應用程序作為我的標准Asp.Net Web應用程序的子應用程序。 這兩個項目都在同一個解決方案中。 雖然父應用程序看起來很順利,但我無法讓子應用程序工作。 在對我的兩個web.configs進行一些按摩之后,我能夠讓Asp.Net運行時接受配置,但是我無法瀏覽到MVC應用程序中的任何頁面/控制器,包括子的根-application(“ http:// RootSite / SubApplicationName / ”)。 我不斷得到404。

實際上,當我轉到網址“ http:// RootSite / SubApplicationName / Home / Index / ”時,我確實收到了回復。 它將我重定向到該文件夾​​中的index.aspx,並拋出此錯誤:

無法找到“索引”視圖或其主頁。 搜索了以下位置:
〜/瀏覽/首頁/的Index.aspx
〜/瀏覽/首頁/ Index.ascx
〜/查看/共享/的Index.aspx
〜/查看/共享/ Index.ascx

IIS(7)中的子應用程序設置得非常簡單:它設置為在與父應用程序相同的應用程序池中運行,后者在集成模式下運行Asp.Net 2.0。

我的懷疑是我在web.configs中有一些東西正在拋棄它。 是否存在關於HTTPModules或URL授權模塊等的事情,我應該確認這些事情不會妨礙MVC的發展?

另外,在global.asax.cs文件中,默認路由是否應該不同? 默認情況下,傳遞給routes.MapRoute的url參數是:

"{controller}/{action}/{id}"

它應該在子應用程序的名稱前面,如此嗎?

"SubApplicationName/{controller}/{action}/{id}"

我嘗試過這樣的改變,但它並沒有解決問題。

任何想法都非常感謝。 此外,有關將MVC Web應用程序設置為子應用程序的一般信息也很棒。

謝謝。

我做了類似的事情,但不一樣,我不得不從一個單獨的DLL加載視圖。 在我的情況下,它是一個類庫,而不是一個不同的Web應用程序,但據我所知,它應該工作相同。

您要做的第一件事是創建一個VirtualPath Provider來告訴路由引擎如何在子應用程序視圖中查找您的東西。 有關如何執行此操作的詳細說明,請訪問:

http://www.wynia.org/wordpress/2008/12/05/aspnet-mvc-plugins/

我相信這會讓你開始;)

子應用程序不直接適用於MVC Web應用程序。 你必須在global.asax中編寫很多被黑客入侵的代碼。 使用子域而不是子應用程序。

確保您沒有在Views目錄的名稱中出現任何拼寫錯誤。 我收到了同樣的錯誤消息,經過30分鍾的頭部刮擦意識到我拼錯了我的一個視圖的文件夾名稱。 IDE沒有以任何有意義的方式選擇它(例如,如果它明確地告訴我,我引用的視圖的路徑不正確 - “未找到”可能意味着一些不同的事情,那將是很好的)。

暫無
暫無

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

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