私は、ユーザーが互いにメッセージを送ることを可能にするウェブサイトを持っています。一番上の私のレイアウトには、未読メッセージの数を示す通知バーがあります。メッセージ付きのテーブルには未読(true、false)のプロパティがあります。私は簡単に現在のユーザーの未読のメッセージを検索することができます、私はちょうどレイアウトに送信する方法を知らない。レイアウトに送るコントローラがありますか?MVCコントローラをレイアウトしますか?
答えて
私は部分的なビューを作成し、それを呼び出すコントローラーを使用しました。 DBに未読メッセージを問い合わせ、ViewBagでカウントを送信しました。 @ Html.Actionで呼びます。ユーザーがウェブページをリフレッシュするたびにレンダリングされることを知らなかった。ありがとうございました:)
レイアウトページでモデルを使用することを定義できます。モデルとしてインターフェイスを使用することをお勧めします。
public interface IMessageNotification {
public int UnreadMessagesCount {get; set;}
}
レイアウトページを使用するすべてのViewModelは、このインターフェイスを実装する必要があります。あなたはこのようLayout.cshtmlにアクセスすることができ :
@model IMessageNotification
<div class="myNotification">@Model.UnreadMessagesCount</div>
は、もう一つの方法は、通知のためのプレースホルダとして機能し、レイアウト内のセクションを定義するために、すべてのビューをレンダリングすることができますでしょうASP.NET MVC Razor pass model to layout
を参照してください。それがどのように必要なのか通知。
レイアウト:
@* No model directive required *@
@if (IsSectionDefined("Notification")) {
@RenderSection("Notification")
}
コンクリートビュー(SomeConcreteViewModelが持つプロパティUnreadMessagesCount):コントローラ用として
@model SomeConcreteViewModel
@section Notification {
<div class="myNotification">@Model.UnreadMessagesCount</div>
}
:あなたが実装さIMessageNotificationインターフェースに必要なデータを埋めるヘルパークラスを使用することができますビューモデルによって。このレイアウトを使用してビューをレンダリングするすべてのアクションでこれを呼び出します。
答えをありがとう。私はあなたがレイアウトのためにビューモデルを使うことができることを知らなかった。私は別のアプローチを使用しました。私は部分的なビューを作成し、それを呼び出すコントローラを使用しました。 DBに未読メッセージを問い合わせ、ViewBagでカウントを送信しました。 @ Html.Actionで呼びます。あなたの努力のおかげで、ゲオルグ:) – Ashley
- 1. mvc 5のコントローラからレイアウト(マスターページ)を変更する方法は?
- 2. JSONをMVCコントローラに渡しますか?
- 3. レイアウトを変更するコントローラを作成しますか?
- 4. Zend MVCでは、コントローラへの変数セットをレイアウトにどのように渡しますか?
- 5. ASP.NET MVCはテーブルからオブジェクトをコントローラに渡しますか?
- 6. MVC - ViewからコントローラのSQLデータモデルをリフレッシュしますか?
- 7. ビューなしでMVCコントローラのアクションを実行しますか?
- 8. JQueryをレイアウトで使用し、MVCで表示できますか?
- 9. MVCコントローラからWeb APIコントローラにオブジェクトを渡したい
- 10. Spring MVC - レイアウト
- 11. ApplicationUser.csのコントローラを追加しますか? MVCコア
- 12. asp.net mvcはJquery ajaxからコントローラにパラメータを渡します
- 13. サービスからMVCコントローラへのパラメータを角度で渡します。
- 14. MVCのコントローラ、ビュー、アクションの名前をハードコーディングしていますか?
- 15. Asp.net MVC - Asynchコントローラはベースコントローラから機能を取得します
- 16. MVCとWebApiコントローラはルートテーブルを共有していますか?
- 17. Spring MVCコントローラをブロックしていますか?
- 18. ASP MVCは別のコントローラからのデータをバインドします
- 19. コントローラからのモーダルポップアップ.NET MVC
- 20. コントローラからのASP.NET MVCリライトパス
- 21. C#mvcコントローラからクラス
- 22. JSONをMVCコントローラからwebmethodに戻す
- 23. MVCコントローラから別のビューを返す
- 24. MVCビューからコントローラに値を渡す
- 25. コントローラからビューMVCにオブジェクトを渡す
- 26. MVCコントローラからPlain Jsonを返す
- 27. javascriptからmvcコントローラに値を渡す
- 28. MVC - ビューからコントローラへデータを渡す
- 29. MVCコントローラ何をすべきか
- 30. ASP .NETのコアMVC - MVCコントローラ
https://gyazo.com/679499bcb8bef59b9d5843f068c253d2これはトップバーの写真です。共有レイアウトです。 – Ashley
レイアウトビューで部分ビューをレンダリングすることができます –
しかし、どこでレンダリングするコントローラをどこから呼び出すのですか?ユーザーがウェブサイト上で何か操作を行うたびに更新されますか? – Ashley