我正在使用實體框架製作MVC應用程序。在我的數據庫中,我存儲了很多信息(還有關於我的用戶)。我希望我的導航欄(在佈局中)針對不同的用戶(基於實體)有所不同。通常我將我的實體傳遞給控制器,但是如何使用共享的佈局來實現這一點?MVC Layout.cshtml控件
0
A
回答
1
使用童工的行爲:
public class FooController : Controller
{
...
[AllowAnonymous]
[ChildActionOnly]
public ActionResult Navbar()
{
var navbar = // retrieve navbar data
return PartialView("_Navbar", navbar);
}
}
你把這個不要緊控制器。你只需要在調用子動作時引用它。例如,在您的佈局中:
@Html.Action("Navbar", "Foo")
最後,只需創建一個局部視圖來渲染導航欄即可。在這個例子中,那將是_Navbar.cshtml
。局部視圖可以使用模型,佈局將保持完全不可知。
+0
如果您在佈局中調用子動作,那麼在使用佈局的每個控制器中都不需要它? – DonO
+0
否。第二個參數是控制器參考。 –
相關問題
- 1. layout.cshtml的自定義控制器
- 2. Layout.cshtml上的ASP.NET MVC搜索框
- 3. asp.net mvc layout.cshtml和index.cshtml問題4
- 4. 如何在asp.net中的layout.cshtml
- 5. window.onbeforeunload未燒製Layout.cshtml
- 6. 將數據添加到layout.cshtml中的index.cshtml中layout.cshtml中的特定位置
- 7. _MINIPROFILER UPDATED Layout.cshtml剃刀問題
- 8. DevExpress MVC控件
- 9. ASP.NET MVC控件
- 10. 如何在Razor和Layout.cshtml中使用Gulp
- 11. MVC部分控件
- 12. MVC上傳控件
- 13. Loginview控件asp.net mvc
- 14. 訪問layout.cshtml中的「頁面字段」值
- 15. MVC控制器啓用禁用控件
- 16. asp mvc用戶控件
- 17. ASP.NET MVC模板控件
- 18. ASP.NET MVC控件和CSS
- 19. Asp.Net MVC用戶控件
- 20. Telerik Scheduler控件在ASP.NET MVC
- 21. MVC框架和控件
- 22. 代碼爲MVC GridView控件
- 23. Asp.net Mvc內置控件
- 24. jQuery + MVC用戶控件
- 25. MVC Partials與用戶控件?
- 26. MVC服務器端控件
- 27. C#ASP.NET MVC用戶控件
- 28. MVC控件和jQuery函數
- 29. Telerik的asp.net MVC FileUpload控件
- 30. ASP.NET MVC的網格控件?
您可以設置一個viewbag條目(根據當前用戶類型),並檢查佈局中是否顯示不同的導航器 – Shyju