我想在控制器中为ViewBag分配一个值,以便稍后在View中使用,它会抱怨以下错误.
像这样在Controller中分配值.
ViewBag["isAdmin"]=true;
Run Code Online (Sandbox Code Playgroud)
错误:
Cannot apply indexing with [] to an expression of type 'System.Dynamic.DynamicObject'
Run Code Online (Sandbox Code Playgroud)
以前有人有这个吗?
The*_*lTy 18
你需要的只是ViewBag.isAdmin = true.你可以访问的是
if(ViewBag.isAdmin)
{
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
作为后续,ViewBag(和ViewData)背后的想法是,您可以存储键值对的东西,并在View中方便地访问它们.
使用ViewData,您可以像这样引用这些内容:
ViewData["SomeKey"] = someObject;
Run Code Online (Sandbox Code Playgroud)
如果你想使用ViewBag来做同样的事情(它提供了一个围绕该ViewData字典构造的包装,并使它更简洁,更具可读性),你可以引用如下内容:
ViewBag.isAdmin = true;
并且可以检查它们,如上面所说的tyrongower,像这样:
if (ViewBag.isAdmin)
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
当我使用这个构造时,我通常使用ViewBag语法,但它们确实引用了相同的东西.所以如果你在View之外做了类似的事情:
ViewData["isAdmin"] = true;
如果你这么倾向,你可以这样引用它:
ViewBag.isAdmin
或相反亦然.
关于这个概念的更多细节.
| 归档时间: |
|
| 查看次数: |
8899 次 |
| 最近记录: |