我有一个简单的登录界面,它使用ajax登录系统,css和脚本全部使用捆绑包加载。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="target-densitydpi=device-dpi; width=device-width;initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
</head>
<body>
@RenderBody()
@Scripts.Render("~/bundles/jquery")
</body>
</html>
我的所有脚本都在页面加载时完美运行,但是一旦我登录并单击注销按钮,我就会被重定向到登录屏幕,但我的脚本都不再有效。我认为这是因为我在点击注销按钮时重定向用户的方式,查看URL仍然在〜/ Home / Logout而不是〜/ login / index上显示im。
这是用于注销我的用户的代码。
@{
ViewBag.Title = "Home";
}
<div data-role="page">
<div>
<div data-role="navbar">
<ul>
<li>@Html.ActionLink("Logout", "Logout", "Home" , null, null)</li>
<li><a href="#" id="btnFilter">Filter</a></li>
</ul>
<div id="filter" style="background-color:#F6F6F6;">
<div style="padding: 0px 5px;">
<select id="ddlAudits">
<option value="-1">Select Inspection</option>
@foreach (var i in ViewBag.AuditDropDown)
{
<option value="@i.AuditID" >@i.AuditTitle</option>
}
</select>
<select id="ddlAccounts">
<option value="-1">Select Account</option>
@foreach (var i in ViewBag.AccountDropDown)
{
<option value="@i.AccountID" >@i.AccountName</option>
}
</select>
</div>
</div>
</div>
<div id="DivAccounts">
</div>
</div>
我尝试将主页上的注销按钮设置为
<a href="~/">Logout</a>
但是一旦重定向到登录屏幕,脚本仍然无法加载。我很难理解这一点,因为我只在一个多月的时间里做了MVC。
这是我用ajax注销用户的行动
public ActionResult Logout()
{
FormsAuthentication.SetAuthCookie("ctUserID", false);
FormsAuthentication.SignOut();
return Redirect("~/");
}
非常感谢任何帮助/建议。
答案 0 :(得分:0)
我找到了解决方法,不知道这是不是最好的方式,但不是使用_layout视图,我只是创建了单独的视图,并将我的包包含在所有页面的顶部。现在一切都很完美。