MVC5 Получение кнопки для вызова метода действия в контроллере - PullRequest
0 голосов
/ 23 сентября 2018

Как говорится в заголовке, когда я нажимаю кнопку на главном экране, мне нужно вызвать метод в моем контроллере для этого представления.Я пытался часами, и я много раз менял определенные строки кода, но все варианты, кажется, дают одинаковые ошибки, поэтому я просто показываю самые простые версии, чтобы донести свою мысль.Каждый раз, когда я что-то пробую, я получаю ошибку 404, что путь не найден.Так что я предполагаю, что что-то не так с кодом на мой взгляд.Я не использую JQuery или какой-либо javascipt

Строка кода в моем представлении индекса:

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

Я знаю, что это не будет работать для получения методов, но это работает для смены страниц, поэтому я подумал, что будуначать там.Я не уверен, должен ли я делать это в качестве ссылки или кнопки.

мой метод в моем HomeController:

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

вот мой Solution Explorer

Я довольно новичок в MVC и, вероятно, делаю довольно глупые вещи, поэтому любая помощь приветствуется, спасибо.

1 Ответ

0 голосов
/ 24 сентября 2018

У вас есть две опции:

Опция 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>
...