Точка "." в 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, если это необходимо ...