当我运行我的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保持不变。
答案 0 :(得分:3)
是的,这在您的视图中处理似乎很好,并根据用户是否经过身份验证包含不同的部分/部分。
但如果您发现自己在视图中重复这些ifs数百次将其转换为意大利面条代码,您可以拥有2种不同的视图并处理Index操作中的情况:
public ActionResult Index()
{
if (Request.IsAuthenticated)
{
return View("AuthenticatedIndex");
}
return View();
}
答案 1 :(得分:1)
还可以从控制器返回2个不同的视图。一个如果你被认证,一个如果你没有。取决于两个视图的差异程度。