我在共享布局_Layout.cshtml
中定义的变量是否在视图页面的范围内?
_Layout.cshtml 变量:
@{
ViewBag.url = "http://www.website.com/site/";
}
索引.cshtml:
<a class="continue" href="@ViewBag.url/our-vision/">Continue</a>
这输出:/our-vision/
我在共享布局_Layout.cshtml
中定义的变量是否在视图页面的范围内?
_Layout.cshtml 变量:
@{
ViewBag.url = "http://www.website.com/site/";
}
索引.cshtml:
<a class="continue" href="@ViewBag.url/our-vision/">Continue</a>
这输出:/our-vision/
您可以尝试回答这个问题:How do I set ViewBag properties on _ViewStart.cshtml?
设置(注意:代码用于 _ViewStart,而不用于 _Layout)
@{
PageData["message"] = "Hello";
}
得到
<h2>@PageData["message"]</h2>
或者
创建更有趣的解决方案:How to set ViewBag properties for all Views without using a base class for Controllers?
说明:
每个视图/布局的 ViewBag 都不同,剃须刀首先渲染视图,然后是布局。
此问题的解决方案可能是在基本控制器或视图或全局过滤器中设置公共常量而不是布局。