ASP.net 4.0 Webforms Маршрутизация Проблема обратной передачи - PullRequest
4 голосов
/ 11 марта 2011

Мы используем asp.net 4.0 и используем веб-формы для создания дружественных URL.

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

Например, маршрут (customer / {customerid}) при просмотре с помощью ... / customer / 12345 отображает только 12345 в атрибуте "action" формы. Проблема заключается в том, что он не завершен, и любая обратная передача завершается неудачно и выдает ошибку «HTTP-глагол POST, используемый для доступа к пути, не разрешен». Если я изменяю действие как «customer / 12345» (с использованием Firebug), выполняется обратная передача отлично работает.

Он даже выдает ошибки при использовании статических маршрутов, таких как клиент / клиент, в качестве значения действия формы указывается только «клиент», а не «клиент / клиент». В основном, только последний фрагмент маршрута добавляется в атрибут действия вместо всего маршрута. Почему?

Есть идеи, как это исправить?

Ответы [ 2 ]

2 голосов
/ 06 июля 2011

Вы можете обойти эту проблему, переместив действие формы как form1.Action = Request.Url.PathAndQuery;] в Page_Load событие

0 голосов
/ 09 октября 2014

См. связанную тему .Он использует Request.RawUrl вместо Request.Url.PathAndQuery, который возвращает то же значение.

...