Матричные параметры применяются к запросу uri, а не к строке запроса. Они не являются параметрами матрицы, если они возникают после вопросительного знака, поэтому прямой вопрос, который вы задаете, на самом деле не имеет смысла (в том, что у вас есть неверная/коррумпированная переменная действия, и, следовательно, все, что вы пытаетесь, вполне может быть не таким, как это сделать - но без подробностей трудно предложить лучший способ).
Ответ на более общий вопрос «как изменить значение действия до того, как FW/1 подберет его?» это: перед тем setupRequestDefaults
называется, что означает, прежде onRequestStart
называется, что означает переопределение версию FW/1 с вашим собственным один, что-то вроде ...
function onRequestStart (string targetPath)
{
var ActionVar = variables.framework.action;
if (StructKeyExists(Url,ActionVar)) Url[ActionVar] = fiddleWithAction(Url[ActionVar]);
if (StructKeyExists(Form,ActionVar)) Form[ActionVar] = fiddleWithAction(Form[ActionVar]);
super.onRequestStart(argumentcollection=arguments);
}
Где fiddleWithAction
является функцией делать все потребности (в этом случае ListFirst(string,';')
сделал бы это).
Но опять же, это, скорее всего, не лучший способ достичь того, что вы пытаетесь сделать.