Я пытаюсь добавить на страницу пост, созданный с помощью Javascript.
Я начал со следующего определенного маршрута:
routes.MapRoute(name: "ItemLinks", url: "ItemRequestController/DoItemRequest", defaults: new { controller = "ItemRequest", action = "DoItemRequest" });
Но я не смог получить значения формы из объекта запроса в методе действия моего контроллера.
Итак, я определил следующий маршрут:
routes.IgnoreRoute("ItemRequestController/{*pathInfo}");
Форма определяется как:
@using (Html.BeginForm("DoItemRequest", "ItemRequestController", FormMethod.Post))
{
@Html.AntiForgeryToken()
<input type="hidden" name="hid_ItemID" value="" />
<input type="hidden" name="hid_PositionOnPage" value="" />
В функции js я определяю значения (на основе щелчка) скрытых полей, затем выполняю:
document.forms[0].submit();
Проблема в том, что я сейчас получаю сообщение об ошибке ...
HTTP-глагол POST, используемый для доступа к пути
'/ ItemRequestController / DoItemRequest' не допускается.
Как мне обойти это и прочитать значения POST формы в методе действия моего контроллера?
- ОБНОВЛЕНИЕ -
Не могу поверить, что я забыл добавить это ...
Я уверен, что есть более изящный способ получения запроса var ... открытый для предложений.
Метод контроллера:
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult DoItemRequest()
{
int itemListID = 0;
int pagePositionNumber = 0;
int.TryParse(Request["itemListID"], out itemListID);
int.TryParse(Request["pagePositionNumber"], out pagePositionNumber);