Точка "." в MVC Web API 2 для запроса, такого как api / people / STAFF.45287

URL яЯ стараюсь дать работу одному в стиле:http://somedomain.com/api/people/staff.33311 (так же, как сайты, так как LAST.FM разрешает все виды знаков в их RESTFul & URL веб-страницы, например "http://www.last.fm/artist/psy»aviah» является действительным URL для LAST.FM).

Какие работы выполняются по следующим сценариям: -http://somedomain.com/api/people/ - который возвращает всех людей -http://somedomain.com/api/people/staff33311 - будет работать, но этоне то, что ям после того как яЯ хочу, чтобы URL принял "точка»как в примере ниже -http://somedomain.com/api/people/staff.33311 - но это дает мне

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

настроили следующие вещи:

Контроллер "PeopleController»

public IEnumerable GetAllPeople()
{
    return _people;
}

public IHttpActionResult GetPerson(string id)
{
    var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower()));
    if (person == null)
        return NotFound();

    return Ok(person);
}    

WebApiConfig.cs

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services

    // Web API routes
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
}

Я уже пытался следовать всем советам этого постаhttp://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx но все равно победилне работает .. Я тоже так думаюдовольно утомительно, и мне интересно, если нетт другой, лучший и более безопасный способ.

У нас есть свой идентификаторвнутренне, как это, поэтому мынам нужно будет найти решение, которое бы так или иначе соответствовало точке, предпочтительно в стиле "." но я'м открыты для альтернативных предложений для URL, если это необходимо ...

Ответы на вопрос(8)

Ваш ответ на вопрос