Сопоставление маршрутов MVC со значимыми именами каждому методу для веб-API - PullRequest
1 голос
/ 22 февраля 2012

Стандартный маршрут для веб-API MVC - {controller} / {id}. Однако я хотел бы назвать свои переменные более наглядно, чем просто «id». Хотя сделать это было бы для меня более логично, если бы я мог сопоставлять маршруты непосредственно с методами, как работал веб-API WCF. Есть ли способ сделать это с MVC или есть более MVCish способ маршрутизации, но при этом поддерживая уникальные идентифицируемые заполнители для каждого метода? Или я застрял, просто назвав все мои параметры ID?

    [WebGet(UriTempalte="{controller}/{email}"]
    public string GetEmail(string email)

Вместо:

    public string GetEmail(string id)

Ответы [ 2 ]

2 голосов
/ 22 февраля 2012

Если вы назовете его email - создайте отдельный маршрут в Global.asax.cs, соответственно назвав свой параметр, то есть {controller}\{email}.В маршрутах MVC у вас есть только очень короткий список ключевых слов, специфичных для MVC - {controller}, {action}, {area} и т. Д. Все остальные параметры передаются в соответствующие параметры действия (если они присутствуют в сигнатуре метода действиякурс).

1 голос
/ 22 февраля 2012

Вам routes.MapRoute("getemail/{email}", new { controller = "EmailGetter", action = "GetEmail" }) не достаточно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...