2012-02-16 4 views
1

URL 이름을 고를 사용자를위한 고객 경로를 만들고 싶습니다.경로가 ASP.NET MVC에서 사용되고 있는지 확인하십시오.

http://example.com/customer-name

나는 이름들이 입력이 이미 우리의 경로에 등록되지 않은 것을 확인할 수 있습니까? 누군가 "about"이라고 타이핑 한 것처럼, http://example.com/about, 나는 우리에게 About 페이지가 있기 때문에 이름이 이미 사용되고 있다고 말할 수 있습니다.

답변

0

사용자 정의 경로에는 탐욕스러운 경로를 사용해야합니다. 경로 등록과 같습니다

routes.MapRoute("customCustomerRoute", 
       "{*customerName}", 
       new { controller = "Customer", action = "Home" } 
     ); 

하고 다른 경로를 먹고하지 않도록, 당신의 경로의 마지막에 가야한다.

그런 다음 고객 이름 경로를 db에 저장하고 새 경로를 만들기 전에 경로를 검색 할 수 있습니다.

는 다음과 같은 코드로 모든 가능한 기존의 경로를 얻을 수 있습니다 : 그 경로 등록 할 수있는 URL을 포함하는 경우

var routes = new RouteCollection(); 
MvcApplication.RegisterRoutes(routes); 

그렇다면, 당신은 볼 수 있었다.

+0

그러나 "/ about"경로가 사용 중이 아닌지 확인하려는 경우 DB에 없으면 Global.asax에있게됩니다. –

+0

오, 나는 네가 묻고있는 것을 얻는다 .... 내 것을 보아라. 그게 도움이 되니? –

+0

그건 그냥 경로를 등록? –

0

저는 모든 고객 경로를 '폴더'에 넣습니다. http://example.com/account/customer-name. 거기에는 갈등이 없습니다.

다른 모든 '하드 코드 된'컨트롤러를 영역에 배치하고 클라이언트 사용을 위해이 영역을 금지하십시오.

관련 문제