我有一个网站,允许用户发送消息给彼此。我的布局顶部有一个通知栏,显示未读邮件的数量。我的消息表具有未读的属性(true,false)。我可以轻松搜索当前用户的未读消息,但我不知道如何将其发送给布局。有没有我可以用来发送到布局的控制器?MVC控制器来布局?
1
A
回答
0
我创建了一个局部视图,并使用一个控制器来调用它。我查询了数据库的未读消息,并通过ViewBag发送了计数。我用@ Html.Action调用它。不知道每次用户刷新一个网页时都会显示。谢谢大家:)
0
您可以定义您的布局页面使用模型。我会建议使用一个接口作为模型。
public interface IMessageNotification {
public int UnreadMessagesCount {get; set;}
}
使用该布局页所有的ViewModels必须实现这个接口。 您可以访问它在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接口辅助类由视图模型。在使用此布局呈现视图的每个操作中调用此函数。
+0
谢谢你的答案。我从来不知道你可以使用视图模型进行布局。我用了不同的方法。我创建了一个局部视图,并使用一个控制器来调用它。我查询了数据库的未读消息,并通过ViewBag发送了计数。我用@ Html.Action调用它。谢谢你的努力,乔治:) – Ashley
相关问题
- 1. MVC 3布局和控制器
- 2. 无法让角控制器在MVC布局中工作
- 3. 从布局将数据发送到控制器Asp.Net MVC
- 4. Sitecore MVC控制器ActionResult不渲染回发布局
- 5. MVC中共享布局视图的控制器方法?
- 6. 如何从mvc 5中的控制器更改布局(主页)?
- 7. 跨MVC控制器的全局数据
- 8. 来自查询字符串的MVC控制器全局变量
- 9. 渲染控制器布局($这个 - >布局)
- 10. Laravel禁用控制器操作布局
- 11. 如何Laravel控制器使用$布局
- 12. 更改设计控制器的布局
- 13. 每个控制器的导轨布局
- 14. 游戏控制器布局检测 - swift
- 15. 2布局在一个控制器
- 16. 指定整个控制器的布局
- 17. Umbraco:使用控制器的主布局
- 18. Laravel控制器布局测试
- 19. 仅使用控制器的布局
- 20. 在控制器中使用布局
- 21. 指定控制器main.gsp布局
- 22. 如何设置控制器的布局
- 23. 无控制器渲染布局
- 24. 将DropDownList值发布到MVC控制器
- 25. 发布JSON到控制器MVC 5
- 26. 从Knockout发布到ASP.NET MVC控制器
- 27. AJAX - 发布JSON到控制器ASP.NET MVC
- 28. Jquery Ajax发布Spring MVC控制器?
- 29. 发布JSON数组到mvc控制器
- 30. 来自PHP MVC控制器的呼叫控制器?
https://gyazo.com/679499bcb8bef59b9d5843f068c253d2这是顶部栏的图片,它是共享布局。 – Ashley
你可以渲染部分视图在你的布局页面 –
但是我在哪里可以调用这个呈现部分的控制器,所以每次用户在网站上做什么都会更新? – Ashley