问题描述
||
考虑考虑休假声明
@section sideaction
{
...
ViewBag.Title=Model.Title;
...
}
在主要布局中,我有这个
<head>
<title> @ViewBag.Title</title>
....
...
</head>
..
...
<body>
..
@RenderSection(\"sideaction\",required:false)
..
</body>
我没有从视图中获取标题,我知道视图将在布局之前处理,但是我认识到头部在渲染部分之前已处理,这会导致此问题。
还有一件事,ViewBag.Title = Model.Title只是一个例子,真正的Model是IEnumrable对象,我正在迭代并找到适当的标题。我可以在控制器中迭代以找到标题,但是视图中已经存在迭代。对于大集合,一次迭代更为有效。
有任何想法吗?
解决方法
您不能在区域中设置
ViewBag
值。
用这个:
@{
ViewBag.Title = Model.Title;
}
直接在视图中设置标题。
,即使它不起作用,请注意代码必须像这样:
@section sideaction
{
@{
ViewBag.Title = Model.Title;
}
}
但是正如其他人前面提到的,您不能在部分中以这种方式进行操作。
您应该将其直接放在视图中:
@{
ViewBag.Title = Model.Title;
}
顺便说一句,如果您坚持要从某个部分内部更改页面标题,请使用javaScript / jQuery,例如:
@section sideaction
{
<script type=\"text/javascript\">
$(function () {
document.title = \'@Model.Title\';
});
</script>
}
注意:请注意,它必须是\'@ Model.Title \'(在引号内)。