将数据传递到所有页面通用的布局

将数据传递到所有页面通用的布局

我有一个有布局页面的网站。但是,此布局页面包含所有页面模型必须提供的数据,例如页面标题,页面名称以及我们实际执行某些操作的HTML帮助程序所在的位置。每个页面都有自己的视图模型属性。

我怎样才能做到这一点?键入布局似乎是一个坏主意但我如何通过这些信息呢?


Smart猫小萌
浏览 400回答 3
3回答

梦里花落0921

我在布局中使用了RenderAction html helper for razor。@{ &nbsp;&nbsp;&nbsp;Html.RenderAction("Action",&nbsp;"Controller"); &nbsp;}我需要它用于简单的字符串。所以我的动作返回字符串并在视图中轻松写下来。但是如果您需要复杂的数据,可以返回PartialViewResult和model。&nbsp;public&nbsp;PartialViewResult&nbsp;Action() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;model&nbsp;=&nbsp;someList; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;PartialView("~/Views/Shared/_maPartialView.cshtml",&nbsp;model); &nbsp;&nbsp;&nbsp;&nbsp;}您只需要将您创建的部分视图“_maPartialView.cshtml”的模型开头@model&nbsp;List<WhatEverYourObjeIs>然后,您可以使用html在该局部视图中使用模型中的数据。

神不在的星期二

另一种选择是创建一个单独的LayoutModel类,其中包含布局中需要的所有属性,然后将此类的实例填充到ViewBag中。我使用Controller.OnActionExecuting方法来填充它。然后,在布局开始时,您可以从ViewBag中拉回此对象并继续访问此强类型对象。
打开App,查看更多内容
随时随地看视频慕课网APP