我正在尝试根据传递给包含 Telerik tabStrip 的视图的用户访问级别来显示/隐藏选项卡,如下所示:
@{ Html.Telerik().TabStrip()
.Name("Main_Tabstrip")
.Items(tabstrip =>
{
tabstrip.Add()
.Visible((int)ViewData["UserLevel"] < 2)
.Text("Topic A")
.LoadContentFrom("_TopicATab", "TopicA");
tabstrip.Add()
.Visible((int)ViewData["UserLevel"] < 2)
.Text("Topic B")
.LoadContentFrom("_TopicBTab", "TopicB");
tabstrip.Add()
.Visible((int)ViewData["UserLevel"] < 2)
.Text("Topic C")
.LoadContentFrom("_TopicCTab", "TopicC");
})
但是,当我在用户状态发生更改后调用生成视图的操作时,尽管视图似乎在更新(我可以逐步查看它并查看 UserLevel 更改),但选项卡的可见性仍然与第一次呈现视图时一样.
如果我随后在浏览器中或通过 JavaScript location.reload() 调用刷新页面,则选项卡可见性工作正常。
附加信息:上面提到的 Action 调用 View() 来渲染包含上述 View 的整个页面。
尽管这次我能够通过在 JavaScript 中重新加载页面来解决这个问题,但我真的很想知道为什么这是必要的,并希望得到任何建议或解决方案。