2013-03-13 1 views

답변

2

ID를 제거 할 수 없습니다. 경로에서 제거하면 더 이상 서버로 전달할 수 없습니다. 그게 어디서 온 것 같니? 당신이 할 수있는 것은 다음과 같은 SEO 친화적 인 URL 패턴을 가지고 있습니다 :

http://www.abc.com/US/1111-11/abcd 

정확히 StackOverflow의 질문에 그것을 수행한다. 검색 주소창을 보면 다음과 같이 표시됩니다.

https://stackoverflow.com/questions/15378465/how-to-hide-parameter-in-url-using-routing-in-mvc-2 

아이디와 이름이 있습니다.

routes.MapRoute(
    name: "ResultsRoute", 
    url: "us/{id}/{name}", 
    defaults: new { controller = "Search", action = "Results" } 
); 

이름이 일부 특수 문자가 포함 된 경우 발생할 수있는 다음 문제 : 다음 경로 정의를 가질 수 있음을 달성하기 위해

. Scott Hanselman은이 내용을 그의 blog post에서 자세히 설명했습니다. 이를 해결하는 적절한 방법은 이름에서 위험한 모든 문자를 제거하는 것입니다. StackOverflow가 사용하는 for example the filtering function입니다.

public ActionResult Results(int id) 
{ 
    ... 
} 
: 그래서 아이디어는 SEO 친절하지만 이미 해당 ID를 가지고 있기 때문에 컨트롤러의 행동에 필요하지 않은 소위 슬러그을이 필터링 기능을 통해 이름을 전달하고 생성하는 것입니다
관련 문제