如何更改路由参数';的名字

本文关键字:何更改 路由 参数 | 更新日期: 2023-09-27 18:26:59

我正在实现一些api。那个api发送给我http get requests。所有参数的名称都是大写的。

因此,查询字符串如下所示:

myURL?CALLID=1&STATE=START

我在Global.asax 中添加了新的MapRoute

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)
{
}

如何更改路由参数';的名字

根据您的特定路线定义,它将与以下所有URL 一起工作

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

参数名称的大小写无关紧要。它既适用于小写也适用于大写。

尝试将routes.MapRoute更改为:

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