Но мне нужно отправить сообщение:/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"]
Затем, когда нажата кнопка отправки, значение передается правильно как переменная формы.