0

我正在使用 asp.net MVC 框架。在我的应用程序中,用户必须登录。当用户名和密码的组合正确时,带有菜单的 div(或面板?)必须变得可见。但是我该怎么做呢?当我的面板 pnlMenu 命名时,在我的控制器中我不能执行以下操作:

pnlMenu.visible = true;

那么,我该怎么做呢?

4

2 回答 2

3

您应该做的是在您的控制器中检查用户是否已登录并在 ViewData 中设置一个值,如下所示:

ViewData["IsLoggedIn"] = true;

然后在您的视图中,您可以根据此值设置方法的可见性。这样,如果您稍后更改视图,或者决定拥有多个视图,它们每个都可以使用该值,并且您的视图和控制器之间没有任何耦合。

于 2009-04-18T02:06:35.420 回答
0

在您的视图上创建一个方法或属性,使您能够隐藏或显示适当的控件?

然后,在您的控制器中,您可以访问视图的该属性或方法,不是吗?

您不想在控制器中的视图上引用特定的“控件”,因为 MVC 的一个想法是您可以将 UI 替换为另一个实现(web / win / ...)并利用相同的控制器和应用程序逻辑。然后,您只想描述您的视图应该支持的操作,因此,在描述您的视图必须支持的“合同”的界面中,您应该创建一个名为“ChangeState(bool loggedIn)”的方法。

在控制器中,您可以在用户登录后调用此方法。

于 2009-04-17T08:41:48.740 回答