MVC5获取在Controller中调用操作方法的按钮

时间:2018-09-23 08:55:52

标签: asp.net-mvc-5 actionmethod

作为标题,当我单击主视图上的按钮时,我需要它来调用控制器中该视图的方法。我已经尝试了几个小时,并且已经多次更改了特定的代码行,但是所有变体似乎都给出了相同的错误,因此我只是显示了最简单的版本来阐明我的意思。每次尝试尝试时,都会出现404错误,找不到路径。所以我认为我认为代码有问题。我没有使用JQuery或任何javascipt

我的索引视图中的代码行:

@Html.ActionLink("Button4Pressed", "Button4Pressed", "HomeController");

我知道这对获取方法无效,但是对更改页面有效,所以我想我将从这里开始。我不确定是否应该将其作为href或按钮。

我的HomeController中的方法:

 [HttpPost]
    public ActionResult Button4Pressed()
    {
        state = "year";
        MyChart();
        return View();
    }

这是我的Solution Explorer

我对MVC来说还很陌生,可以做一些非常愚蠢的事情,因此感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您有两个选择:

选项A

从您的控制器方法中删除[HttpPost]属性,您将能够创建指向该属性的常规链接,即使用@Html.ActionLink()

选项B

保留[HttpPost]属性,并使用表单或ajax将请求作为HTTP Post请求发送,即

<form id="Button4Pressed" action="@Url.Action("Button4Pressed", "Home")" method="post"></form>
<a href="#" onclick="javascript:document.getElementById('Button4Pressed').submit()">Button4</a>