いくつかの MVC3 Web アプリケーションのスイートがあり、そのすべてが共通の Core.dll を参照しています。RazorGenerator を使用して一般的なビューをコンパイルしました。サブスクライブ サイトは、事前にコンパイルされた .dll から関連するビューを問題なく見つけます。
レイアウト ページでも同じことをしようとしています。これはすべてのサイトに共通しているため、その特定のサイトに固有の 1 つまたは 2 つの div を保存します。これを行うだけで _layout ビューが提供される限り、これも問題なく機能します。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
しかし、レイアウトでサイト固有の div を取得するには、特定のサイトで部分的なビューを表示し、JQuery を使用して _layout でプレースホルダー div の HTML を設定します。何かのようなもの:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
//Have a hidden div containing the partial view that sits in the specific site
<div id="SiteSpecificStuff" style="display:none">
@Html.Partial("_SiteSpecificStuff", model)
</div>
// Use jQuery to populate the html of the placeholding div on the _Layout
// with that of the partial view
<script type="text/javascript">
$(document).ready(function () {
$("#divPlaceHolderOnLayout")
.html($("SiteSpecificStuff").html());
});
</script>
私はこれを試しましたが、_ViewStart はすべての投稿で再起動しません。これは別のアプローチを使用して可能ですか?