2015-12-16 5 views
0

Я реализую около api. Это api отправляет мне http get requests. Все имена параметров указаны в верхнем регистре.Как изменить имя параметра маршрута

Таким образом, строка запроса выглядит следующим образом:

myURL?CALLID=1&STATE=START 

Я добавил новый MapRoute моего Global.asax

routes.MapRoute(
    "VotBox", 
    "VotBox/Notify/{CALLID}{STATE}", 
    new { controller = "VotBox", action = "Notify", CALLID = -1, STATE = ""}, 
    new { STATE = "STARTCALL" } 
); 

И мой Controller имеет параметры с именами в верхнем регистре. Так мой Action выглядеть следующим образом:

public class VotBoxController : Controller 
{ 
    [HttpGet] 
    public void Notify(int CALLID, string STATE) 
    { 

    } 
} 

Но я хочу, чтобы мои параметры были названы в стандарте CamelCase. Как я могу изменить имена параметров, так действие выглядит следующим образом:

[HttpGet] 
public void Notify(int callId, string state) 
{ 
} 

ответ

3

В соответствии с Вашим конкретным определением маршрута, он будет работать со всеми из нижеприведенных ссылок

/VotBox/Notify/4/STARTCALL 
/VotBox/Notify/4/startcall 
/VotBox/Notify?CALLID=3&STATE=anyString 
/VotBox/Notify?callId=3&state=anyString 

Корпус имени параметра не имеет значения. Он будет работать как в нижнем, так и в верхнем регистре.

1

попытки изменить routes.MapRoute на:

routes.MapRoute(
    "VotBox", 
    "VotBox/Notify/{callId}{state}", 
    new { controller = "VotBox", action = "Notify", callId = -1, state= ""}, 
    new { state= "STARTCALL" } 
); 
Смежные вопросы