2012-09-15 2 views
0

나를 이해하지 못합니다. 링크가 생성 될 때가 아니라 사용자가 링크를 클릭 할 때만 제약 조건이 적용될 것이라고 생각했습니다. 내가 여기서 뭔가를 놓치고 있니?html 라우팅 도우미가 저장된 데이터에 대해 전화를 걸고 있습니다.

페이지의 링크 수가 많을수록 새로운 데이터 컨텍스트를 열고 각 경로 링크에 대한 쿼리를 실행하는 것은 큰 성능 단점입니다. 모든 Html.RouteLink 도우미 (및 기타)가 링크를 만들 때 제약 조건에 부딪치지 않도록 설정할 수 있습니까?

고마워요!

답변

0

경로에 대한 제약 조건을 확인할 때마다 데이터베이스 호출을해서는 안됩니다. 적어도 적절한 캐싱이없는 경우는 아닙니다. 당신이 생성하는 동안 제약 조건을 확인하지 않는다면 항상 URL을 생성하는 경로 Test1을 사용하지만, 그때는 때 사용자가 일치하는 경로를 찾을 것입니다, 지금

routes.MapRoute("Test1", "test1/{value}", 
    new { controller = "Home", Action = "Index" }, 
    new { value = "^[0-9]+$" } 
); 
routes.MapRoute("Test2", "test2/{value}", 
    new { controller = "Home", Action = "Index" } 
); 

:

또한 실제로 완벽한 의미가 있습니다 그것을 클릭하십시오.

+0

이 경우 데이터베이스 캐싱을 어떻게하면 좋을까요? 라우팅이 사용되고 제약 조건이 사용될 때마다 새로운 데이터 컨텍스트를 열고 싶지 않습니다. 감사. –

관련 문제