Как я могу передать параметр из представления в контроллер без необходимости изменения маршрутизации - PullRequest
1 голос
/ 28 июня 2019

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

Я немного искал, и большинство решений говорят об изменении конфигурации маршрутизации, чего я не хочу делать. Мне интересно, есть ли другой способ сделать это, или это, по крайней мере, стандартная практика.

<button class="button">Medium Voltage</button>
@Html.ActionLink("Medium Voltage", "GaugeView", "PSA")

[HttpGet]
public ActionResult GaugeView(string LineName)
{
//Do stuff based on which LineName was specified
    return View();
}

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

Ответы [ 2 ]

1 голос
/ 28 июня 2019

Просто передайте пользовательское значение следующим образом:

@{
    var url = Url.Action("GaugeView", "PSA", new { LineName = "value"});
}

<button onclick="window.location.href='@url';">Medium Voltage</button>

@Html.ActionLink("Medium Voltage", "GaugeView", "PSA", new { LineName = "value"}, null)
1 голос
/ 28 июня 2019

Согласно документу по адресу: https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.html.linkextensions.actionlink?view=aspnet-mvc-5.2

public static System.Web.Mvc.MvcHtmlString ActionLink (this System.Web.Mvc.HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes);

Необходимо отметить параметр routeValues ​​.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...