レイアウト内にレイアウトページがあります私は部分ビューを使用しました。部分ビューにはビルドしたメニュー機能が含まれています。それは維持するのが簡単です。メニューはレイアウトに意図的に配置されているため、すべてのページに使用されていますが、一部のオプションは特定のページにのみ表示されるメニューには条件付きの要素があります。レイアウトページ内の部分ビューにモデルを渡すことができません
私は、私が前進していくために問題となるものを見つけました。メニューは、コンテンツを含む部分的なビューをレンダリングするためにajax呼び出しを使用します(ページの読み込みを減らしています)。連絡先のリスト、クリックされたときのメニューオプションは連絡先のリストを表示する必要があります。私はすでに会社のモデルの下で連絡先リストを読み込んでいますが、!メニューはレイアウトページ内に含まれている部分的なビューであり、モデルを受け入れることができないため、パーシャルビューにモデルを渡すことができないため、私は新しいパーシャルビューからアクセスできません。メニューの部分図がレイアウトページに表示されるため、ロードしようとしています。
これは固い状況です。新しいセクションをレンダリングするようにレイアウトを変更して、新しいビューモデルを渡すことができますが、作成するすべてのページでメニューを参照する必要があります。害虫!)私はここで何かを逃しているに違いない(これは私の最初のMVC3アプリケーションだと考えている)。助言がありますか?
編集:私は自分でこれをさらに取っ、短期で私のレイアウトページには、常にも、そのデータにアクセスできるメニューが含まれているように、私の部分図として、それを消費したページのモデルにアクセスすることができます。私はページをチェックし、必要に応じてデータを渡すメニューの部分ビューにいくつかの条件付きロジックを書きました。
<div class="menu">
<ul>
<li><a href="@Url.Action("Create", "Contact")">New Contact </li>
<li><a href="@Url.Action("Index", "Contact")">Contact List </a></li>
</ul>
@if (Request.Url.PathAndQuery.Contains("/Contact/Details/"))
{
<ul>
<li>@Html.ActionLink("New Activity", "Create", "Activity", new { companyid = 0, contactid = Model.contact.id }, null)</li>
</ul>
}
</div>
上記メニュー部分図の小さいサンプルであるが、メニューは接触/詳細ページ用に構築およびmodel.contact.idに通過することができるされている一例を含んでいます。それは私のメニューと私のレイアウトは明示的にモデルを含んでいないが、非常にきちんと感じることはありません。
返信いただきありがとうございます、私は少しこれを取ったので、私の投稿を編集しました。 –
@DavidAbrahamあなたの新しい懸念についてアドバイスをいただきました。 – DMulligan