我在共享布局标题中放置了一个登录选项。目标是用户单击登录填充凭据并单击按钮,信息将保存在会话中,页面将刷新,并且将显示登录用户的图标,而不是登录。
我已将登录表单和个人资料图标的HTML /剃刀代码放在单独的文本文件中。并使用此代码创建部分视图
<ul class="auth__nav">
@Html.Raw(ViewBag.FormToShow)
部分视图加载我想检查我的会话变量是否具有值,然后获取配置文件文件代码或其他登录表单代码,但是未调用此操作
public PartialViewResult _SignIn()
{
string vFormtoShow = string.Empty;
if (!string.IsNullOrEmpty(HttpContext.Session.GetString("Username")))
{
vFormtoShow = System.IO.File.ReadAllText("LogOutForm.txt");
}
else vFormtoShow = System.IO.File.ReadAllText("SignInForm.txt");
ViewBag.FormToShow = vFormtoShow;
return PartialView();
}
答案 0 :(得分:0)
您可以使用(嵌套的)部分内容代替使用.txt
文件。
您可以在_LogOutForm.cshtml
中拥有一个_SignInForm.cshtml
文件和一个Views/Shared
文件。
然后,您将在同一文件夹中有一个_UserAuth.cshtml
部分:
@if (!string.IsNullOrEmpty(HttpContext.Session.GetString("Username")))
{
<partial name="_LogOutForm"/>
}
else
{
<partial name="_SignInForm"/>
}
<partial>
标签助手通过其名称(不带扩展名)呈现部分视图。
我建议您尝试ASP.NET Core Identity,这是一个用于用户和身份验证的功能完善的库。