C# MVC\u layout.cshtml文件中的全局操作方法
我正在将一个WebForms ASP.NET项目移植到MVC,但我不确定MVC的工作方式 在WebForms项目中,有一个带有注销按钮的母版页,它显示在每个页面的右上角C# MVC\u layout.cshtml文件中的全局操作方法,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我正在将一个WebForms ASP.NET项目移植到MVC,但我不确定MVC的工作方式 在WebForms项目中,有一个带有注销按钮的母版页,它显示在每个页面的右上角 <div class="userTableElementLogout"> <asp:Button ID="LogOffButton" runat="server" OnClick="LogOffButton_Clicked" Text="LOG OFF" CausesValidation="false"
<div class="userTableElementLogout">
<asp:Button ID="LogOffButton" runat="server" OnClick="LogOffButton_Clicked" Text="LOG OFF" CausesValidation="false" />
</div>
因此,在我的MVC项目中,_layout.cshtml文件中,我有以下内容:
<div class="userTableElementLogout">
<input type="submit" name="ctl01$LogOffButton" value="LOG OFF" id="log-off-button">
</div>
我有几个带有视图的控制器,它们使用_layout.cshtml文件
如何编写一个方法/操作来处理该按钮的点击 您可以将此submit按钮保存在表单标记中,表单标记将被提交到您的某个操作方法中,您可以在其中执行代码以执行注销逻辑
@using(Html.BeginForm("Logoff","Account"))
{
<div class="userTableElementLogout">
<input type="submit" value="LOG OFF" id="log-off-button">
</div>
}
@使用(Html.BeginForm(“注销”、“帐户”))
{
}
假设您在帐户
控制器中有一个HttpPost注销
操作方法,该方法具有上述注销逻辑
如果您愿意,您还可以简单地保留一个锚定
标记,该标记也会向您的一个HttpGet操作方法(注销)发出GET请求
Html.ActionLink
在按钮和控制器/操作方法之间建立链接,这里应该是Account/logoff\u LoginPartial
的局部视图,该视图将有一个按钮或类似于
<ul class="nav navbar-nav navbar-right">
<li id="logOff" class="image-style">
<img class="lhs" style="max-height: 30px; max-width: 30px;" src="@Url.Content("~/Images/logOut.png")" alt="Logout" title="Logout" />
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li id="logOff" class="image-style">
<img class="lhs" style="max-height: 30px; max-width: 30px;" src="@Url.Content("~/Images/logOut.png")" alt="Logout" title="Logout" />
</li>
</ul>
public ActionResult LogOff() {
this.AuthenticationManager.SignOut();
// your logout logic here
return this.RedirectToAction("Index", "Account");
}