2010-01-15 8 views
2

여러 사이트를 지원하는 응용 프로그램이 있습니다. 사이트는 URL을 기반으로 결정됩니다. 사이트 코드 예 테마, 가능한 모듈 등의 많은 기능을 구동 할Asp.Net MVC URL을 통해 사이트 식별

예를 http://myapp/site/abc123/ ... 및 http://myapp/site/xyz123/를 들어

...

질문 :

1) 사이트 코드가 유효한지 확인해야하며 그렇지 않은 경우 사용자를 정보 페이지로 안내해야합니다. IRouteConstraint을 사용하여 보았습니다. 이것이 적절합니까? 다른/더 나은 옵션이 있습니까?

2) (사이트를 식별하기 위해 URL을 사용하는)이 접근법을 사용하는 모든 문제가 있습니까? 더 나은 접근 방법이 있습니까?

솔루션

나는 사용자 정의 ActionFilter을 만들어 결국과 OnActionExecuting 이벤트에 Sitecode를 확인하십시오. 그것은 잘 작동하고 IRouteConstraint보다 잘 맞는 것 같습니다.

답변

0

결국 사용자 지정 ActionFilter를 만들고 OnActionExecuting 이벤트에서 사이트 코드를 확인했습니다. 그것은 잘 작동하고 IRouteConstraint보다 잘 맞는 것 같습니다.

2

구현 한 시스템은 단일 사이트 내에서 고유 한 페이지 콘텐츠를 식별하기 위해 URL을 사용하며 라우팅 프로세스는 매우 간단합니다. 즉, MVC 응용 프로그램에서 영역을 사용하는 것이 좋습니다. 영역을 사용하면 웹 사이트에 여러 개의 섹션을 가질 수 있으며 모든 섹션에는 독립적으로 독립적으로 실행할 수있는 자체 MVC 구조가 있습니다.

기본적으로 하나의 기본 라우팅 정의가 기본 설정되어 나머지 "사이트"는 별도의 위치에서 컨트롤러와 뷰를 가리키는 자체 경로를 정의합니다. 설치가 매우 쉽습니다. ASP.NET MVC 버전 2.0을 사용하고 있는지 확인해야합니다. 다음은 ASP.NET MVC Areas and Routes에 관한보기 좋은 자습서입니다. MVC 2.0이 지원하는 현재 모델에서는 각 영역에 대해 하나의 웹 프로젝트가 있지만 반드시 필요한 것은 아닙니다. Phil Haacked는 기술의 또 다른 예를 찾고 있다면 ASP.NET MVC Single Project Areas에 대한 몇 가지 코드를 제공합니다. 개인적으로는 첫 번째 기사에서 더 많은 이점을 얻을 수 있습니다.

명확하고 측정 가능한 제약 조건이있는 올바른 경로를 정의하는 한 설명 된 웹 사이트 레이아웃에 너무 많은 어려움이 있어서는 안됩니다.

+0

시스템의 경우 IRouteConstraint 또는 사용자 지정 필터를 사용 했습니까? 둘 다 연주하고 나면 맞춤 필터가 더 적합하다고 생각합니다. –

+0

나는 둘 중 하나를 사용할 필요가 없었고 표준 라우팅 규칙만으로도 필요한 것을 얻을 수있었습니다. –

+0

좋아, 내 예제에서 사이트 코드 (id)가 맞으면 어떻게 검증 했습니까? –

관련 문제