这是在用户未经过身份验证时处理页面内容视图的好方法

时间:2013-02-24 15:48:56

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

当我运行我的asp mvc网站第一页时,用户看到的是来自HomeController的索引。

http://localhost:50975/

在该页面上显示的数据仅属于该用户 当我退出用户时,我希望我的网址保持不变(实际上www.site.com):

http://localhost:50975/

但没有内容(因为用户未登录) 我现在这样处理这个,但我想知道它是好方法还是有更好的(可能有) 在我看来:

@if (Request.IsAuthenticated)
{... display data 
}
else{... show only some logo and login and register form

我不知道我是否对自己想要的内容足够清楚,基本上我希望当用户在主页上进行身份验证且未经过身份验证时,该URL保持不变。

2 个答案:

答案 0 :(得分:3)

是的,这在您的视图中处理似乎很好,并根据用户是否经过身份验证包含不同的部分/部分。

但如果您发现自己在视图中重复这些ifs数百次将其转换为意大利面条代码,您可以拥有2种不同的视图并处理Index操作中的情况:

public ActionResult Index()
{
    if (Request.IsAuthenticated)
    {
        return View("AuthenticatedIndex");
    }

    return View();
}

答案 1 :(得分:1)

还可以从控制器返回2个不同的视图。一个如果你被认证,一个如果你没有。取决于两个视图的差异程度。