Параметры матрицы применяются к 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,';')
).
Но опять же, это, скорее всего, не лучший способ добиться того, что вы пытаетесь сделать.
person
Peter Boughton
schedule
11.10.2013