2009-04-27 9 views
0

1つの中心的なビューセットで複数のサイトを作成しようとすると、私はビューを使って外部ライブラリを作成しました。彼らはコンテンツとしてマークされ、常にコピーされます。
このビューライブラリは私のウェブサイトで参照されているため、コンパイルするとbinフォルダに "Views"フォルダが作成されます。binフォルダからビューをロードしますか?

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 
~/bin/Views/Home/Index.aspx 
~/bin/Views/Home/Index.ascx 
~/bin/Views/Shared/Index.aspx 
~/bin/Views/Shared/Index.ascx 

間違って何が起こっている:私は、この画面を得る

public class CommonViewLocator: WebFormViewEngine 
{ 
    public CommonViewLocator() 
    { 
     MasterLocationFormats = new[] { 
      "~/bin/Views/{1}/{0}.master", 
      "~/bin/Views/Shared/{0}.master" 
     }; 
     ViewLocationFormats = new[] { 
      "~/bin/Views/{1}/{0}.aspx", 
      "~/bin/Views/{1}/{0}.ascx", 
      "~/bin/Views/Shared/{0}.aspx", 
      "~/bin/Views/Shared/{0}.ascx" 
     }; 
     PartialViewLocationFormats = ViewLocationFormats; 
    } 
} 

実行した後:
は、その後、私はこのような迅速なカスタムViewEngineを作ったのですか?
また、binフォルダにはビューがあることが奇妙に感じられます。他の提案も歓迎します。

答えて

0

コンテンツが正しいフォルダにあることを確信しているのであれば、明白なセキュリティ上の理由から、おそらくbinディレクトリからサービスが提供されないサーバーでしょう。

この場合、外部プロジェクトでビューを保持してから、それらのビューをレンダリングするHTML拡張メソッドを作成することをお勧めします。

+0

セキュリティは確かに私が考えていたものでした。しかし、私は私が推測するセキュリティエラーを取得します。 Htmlhelpersは、私が最初にビューを持っていないので、これを取り除くことはできません... –

+0

私はHtmlhelpersの提案では、ビューをbinフォルダに入れないでくださいそれが可能であれば、外部ライブラリからレンダリングされ、返されます。 –

1

/bin/Views内のファイルを/ Viewsに移動するプロジェクトでビルド後アクションを使用してみませんか?そうすれば、コードで特別なことを行う必要はありません。

関連する問題