带参数ticket-id

时间:2016-03-15 11:59:39

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

我需要创建一个包含以下网址的路线:“{controller} / {action} / {ticket-id}”

routes.MapRoute(
    name: "Login",
    url: "Auth/Login/{ticket-id}",
    defaults: new { controller = "Auth", action = "Login"}
);

由于参数名称为“ticket-id”,我无法创建路线。

“ticketid”没问题......但我无法更改参数名称。

你有任何解决方案。

由于

1 个答案:

答案 0 :(得分:2)

MVC MapRoute将模板中的参数名称映射到操作中的参数名称。

您说您无法更改参数名称。问题是在c#中你甚至不允许使用该参数名称。

c#不允许您为参数/变量名称设置连字符-

这是不允许的,因为名称必须是有效的标识符。

public ActionResult Login(string ticket-id ) {...}