2009-03-12 8 views
5

標準のAsp.Net WebアプリケーションのサブアプリケーションとしてMVCアプリケーションを作成しようとしています。これらのプロジェクトはどちらも同じソリューションの中にあります。親アプリケーションが正常に動作しているように見えますが、私はサブアプリケーションを動作させるのに問題があります。私の2つのweb.configをマッサージした後、私は設定を受け入れるAsp.Netランタイムを取得することができましたが、サブのルートを含むMVCアプリケーションのページ/コントローラをブラウズすることができませんでした-application( "http://RootSite/SubApplicationName/")。私は継続的に404を取得します。MVCアプリケーションをサブアプリケーションとして実行していますか?

実際には、私は "http://RootSite/SubApplicationName/Home/Index/"というURLに行くときに応答を得ます。これは、そのフォルダにindex.aspxために私をリダイレクトし、そしてこのエラースロー:

The view 'Index' or its master could not be found. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/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アプリケーションをサブアプリケーションとして設定する際の一般的な情報も素晴らしいでしょう。

ありがとうございました。

答えて

1

私は同じようなことをしましたが、同じではなく、別のdllからビューをロードする必要がありました。私の場合、それはクラスライブラリで、別のWebアプリケーションではありませんが、私の知る限りでは同じように動作するはずです。

最初に行う必要があるのは、VirtualApp Providerを作成して、ルーティングエンジンにサブアプリケーションビューで自分のものを探す方法を伝えることです。これを行う方法の偉大な説明はここで見つけることができます:

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

私はあなたが始めるだろうという確信している;)

+0

ありがとうございました!私はそれを読んで、それが私のために働くかどうかを知らせます。 – Moskie

+0

最初はややこしいですが、その投稿は質の高いもので、Visual Studioのソリューションをダウンロードして遊ぶことができます; – antonioh

+0

私は自分の問題を解決する方法については説明しません。私が欲しいのは、標準のAsp.Net WebアプリケーションはMVCアプリケーションであるサブアプリケーションを持っていることです。彼がやっていることは、彼は別のMVC DLLを使用するDLLをMVCアプリケーションの参照を持っているということです。しかし、これは私がここで扱っている関係には言及していない...私は考えない。 – Moskie

0

あなたが任意のスペルミスを行っていないことを確認しますViewsディレクトリの名前。同じエラーメッセージが表示されていました.30分のヘッドスクラッチが発生した後、自分のビューのフォルダ名のスペルが間違っていたことがわかりました。 IDEは意味をなさない方法でこれを選択しませんでした(つまり、参照しているビューへのパスが正しくない - 「見つからない」ということは、いくつかの異なることを明示していればいいでしょう)。

0

サブアプリケーションは、MVC Webアプリケーションに直接スイートではありません。 global.asaxに多くのハッキングコードを書く必要があります。サブアプリケーションではなくサブドメインを使用します。

関連する問題