从不同的控制器访问母版页超链接

时间:2011-11-22 19:36:59

标签: asp.net-mvc-3 asp.net-membership

我正在使用带有成员资格提供程序的ASP.NET 3.0 MVC。我必须修改我们使用与成员资格相关的代码获得的默认实现。我必须在母版页中移动LogOff Hyperlink。最初这个链接是不可见的,但一旦身份验证成功,我需要让它可见。此操作将从Controller进行身份验证,我不知道如何从不同的控制器访问主页中定义的超链接。任何想法如何保持MVC设计的精神?

3 个答案:

答案 0 :(得分:1)

您可以在AccountController中创建另一个操作,以确定是否需要显示注销链接。这个动作部分为html。如果需要显示注销链接,请从母版页调用此新操作并检查该操作。

 @{ Html.RenderAction("displayLogOff", "Account"); }

答案 1 :(得分:0)

我不确定为什么你需要进行修改,因为这似乎是默认行为,但通常你会使用局部视图来显示注销超链接。此部分视图可以运行操作,在此操作中,您将向视图发送模型,该模型可以包括用户当前是否经过身份验证的标志。或者,您可以直接在局部视图中检查Request.IsAuthenticated。

答案 2 :(得分:0)

我不确定我理解。默认实现已经这样做了。无论您使用何种控制器,它都能正常工作。原因是母版页使用了指定方法和控制器的部分页面。