4

MvcContribPortableAreaを使用している大きな.netmvc2プロジェクトがあります。多くのモジュール(PAモジュール)をロードするメインのWebサイトがあります。

メインアプリケーションはSite.Materその~\Views\Sharedフォルダに含まれています。各モジュールにはSite.Master、そのメインモジュールから継承する独自のモジュールもあります。

現在、次のようなものを使用しています。

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" MasterPageFile="~/Views/Shared/Site.Master" %>

コンパイル後、ビューは相対パスであるため、メインのSite.Masterを正しく処理します。これで、コンパイル中にビューを作成する必要がありました。そのため、各WebPAモジュールプロジェクトでMvcBuildViews=trueを有効にしました。

もちろん、と言ってエラーが発生します"/temp/Views/Shared/Site.Master is not found"

コンテンツが埋め込まれたポータブルエリアを維持し、ビューにエラーが含まれないようにするにはどうすればよいですか?

何か案が?

4

2 に答える 2

2

できません。

私はこれと同じ問題を扱っていますが、ファイルの物理的な場所を簡単に偽造することはできません。

唯一の解決策は、ビルドプロセスの一部として、プレースホルダーを作成し、埋め込まれていないプレースホルダーファイルを削除することです。この手法の利点は、埋め込まれていないリソースが開発時に少し速くロードされることです。

考慮すべきもう1つのことは、埋め込みリソースとしてのビューの読み込みがかなり遅いことです。ビルドプロセスで一元化された「共通」ビューをローカルプロジェクトに移動すると、ユーザーのパフォーマンスが向上します。

于 2010-09-28T18:24:04.373 に答える
1

すべてが正常に機能することを確認したい場合は、Watinを使用して、これをチェックする単体テストを作成できます。

于 2010-09-29T13:05:54.113 に答える