共享视图_layout中的Viewbag变量

时间:2017-03-01 12:21:11

标签: asp.net asp.net-mvc razor asp.net-mvc-5

我想在布局的共享视图中使用ViewBag值,但是从另一个控制器提供。特别是,我想渲染主要操作,然后添加一些来自另一个控制器的变量,这些变量在很多页面中使用(但不是在所有页面中都用来证明使用全局变量)。

查看/共享/ _Layout.cshtml

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>
    @Styles.Render("~/Content/css_custom")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
    @Html.Action("myAction", "myController")

    <p>Value: @ViewBag.testval </p>

    @RenderBody()

</body>
</html>

控制器/ myController.cs

namespace myProject.Controllers
{
    public class myController : Controller
    {

        public void myAction() {

            string test_value = "Hey!";

            ViewBag.testval = test_value;
        }

    }

}

在布局中,我可以访问的唯一Viewbag变量是RenderBody的动作目标。

1 个答案:

答案 0 :(得分:0)

您应该返回该视图。

public ActionResult Index()
{
    ViewBag.testval = "Test value";
    return View();
}