在视图中从onclick调用razor方法

时间:2018-12-06 06:41:42

标签: c# asp.net asp.net-mvc razor

仅在单击链接时,我试图找到一种在布局视图中执行方法的方法。到目前为止,这是我的代码:

我要调用的方法(也在视图中):

@functions{
    public void Logout()
    {
        Session.Abandon();
        Response.RedirectToRoute(new { controller = "Home", action = "Index"});
    }
}

将被单击以调用该方法的链接:

<a onclick="// Call the method from here" href="#">Log Out</a>

问题是,我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以在帐户控制器中添加控制器操作,然后调用它。

例如,一种快速的方法是添加操作方法:

public class AccountController : Controller
{

    public ActionResult Logout()
    {
        Session.Abandon();
        return RedirectToAction("Index","Home");
    }
}

在视图中,您可以通过js来实现:

<a onclick="location.href='@Url.Action("Logout","Account")'" href="#">Log Out</a>

更好的方法是将动作创建为HttpPost并通过表单发布来执行。但是上面的示例说明了如何在链接上单击客户端。

答案 1 :(得分:0)

您还可以通过href

实现此目的
<a href="@Url.Action("ActionName","ControllerName")">Log Out</a>