我想在布局的共享视图中使用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的动作目标。
答案 0 :(得分:0)
您应该返回该视图。
public ActionResult Index()
{
ViewBag.testval = "Test value";
return View();
}