如何更改路由参数的名称

时间:2015-12-16 15:48:30

标签: c# .net asp.net-mvc routing global-asax

我正在实施一些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)
{
}

2 个答案:

答案 0 :(得分:3)

根据您的特定路线定义,它将适用于以下所有网址

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

param名称的套管无关紧要。它适用于小写或大写。

答案 1 :(得分:1)

尝试将routes.MapRoute更改为:

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