2

当我运行我的 asp mvc 站点时,用户看到的第一页是 Index from HomeController.

http://localhost:50975/

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

http://localhost:50975/

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

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

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

4

2 回答 2

3

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

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

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

    return View();
}
于 2013-02-24T15:50:16.820 回答
1

也可以从控制器返回 2 个不同的视图。如果您已通过身份验证,则为一个,如果您未通过身份验证,则为一个。取决于两种观点的不同程度。

于 2013-02-24T15:51:45.863 回答