Как передать идентификатор с помощью Html.BeginForm()?

В ASP.NET MVC Я использую HTML-помощник

Html.BeginForm("ActionName", "Controller", FormMethod.Post);

Но мне нужно отправить сообщение:/controller/action/23434

Как передать идентификатор?

Ответ 1

Мэтт должен работать нормально. Если вы все еще проходите в FormMethod.Post, вы должны сделать это следующим образом:

Html.BeginForm("action","controller", new { Id = 12345 }, FormMethod.Post);

Реверсирование третьего и четвертого параметров приведет к тому, что Id будет рассматриваться как атрибут вместо значения маршрута.

Ответ 2

Html.BeginForm("action", "controller", new {Id = 12345})

Ответ 3

Html.BeginForm("action", "controller", new { id = ViewBag.FileID },
FormMethod.Post, new { id = "feedbackform" })

Что касается запроса, ?type=golden, я не знаю, как это сделать. Конечно, querysting - это получение и подрывает целую цель FormMethod.Post. Я имею в виду, что вы можете использовать FormMethod.Get, если хотите получить данные с запросами, и это может быть то, что вы ищете.

Кроме того, вы можете избежать html.beginform и выполнить querystring, получить + сообщение, вручную с тегом формы.

В-третьих, если вы используете форму, вы можете создать скрытое поле:

[input type=hidden name="type" value="golden"]

Затем, когда нажата кнопка отправки, значение передается правильно как переменная формы.