문제

Rob Conery Dos의 MVC 상점과 같은 구조 맵을 사용하고 있으며 AdminController를 가지고 있습니다.

website/Admin/action

그러나 내가 컨트롤러 이름을 사용하지 않으면 아래 오류가 발생합니다.

예외 세부 사항 : System.ArgumentNullexection : 값은 무효 일 수 없습니다. 매개 변수 이름 : 키

이 라인에서 오류가 발생합니다.

Controller controller = ObjectFactory.GetInstance(controllerType) as Controller;

누구든지 내가이 오류를 처리 할 수있는 방법에 대한 아이디어가 있습니까?

미리 건배

도움이 되었습니까?

해결책

문제는 예상 유형 이름이있는 컨트롤러가없는 경우 (즉, 사용자가 유형 인 경우 ")암딘"ControllerFactory 기본 클래스는 찾을 것입니다."암딘컨트롤러 "그리고 찾을 수는 없지만 여전히 재정의 된 메소드를 호출합니다).이 경우 ControllerType 변수는 NULL이됩니다. 따라서 인용 한 줄 전에 NULL을 확인할 수 있습니다 (NULL 인 경우). 어느 하나:

a) Cfeduke가 제안한 것과 같은 철자 수정 구현

또는 b) 단순히 상태 코드 404 ( ~해야 한다 찾고있는 404 오류가 발생합니다).

참고 : 철자 수정을 수행하는 경우 응답을 수행해야 할 것입니다. 응답을 수행해야합니다. 올바른 컨트롤러를 조용히로드하는 대신 새 URL에 적용됩니다.

다른 팁

몇 가지 다른 옵션이 있습니다 (또는 원한다면 솔루션을 위해 결합 할 수있는 두 가지). 의자와 주소 표시 줄 사이의 잠재적 문제 중 일부를 제거하려면 Soundex 솔루션을 구현하십시오 C#에서 새로운 라우팅 프레임 워크를 사용하여 잠재적으로 일부 철자를 캡처하고 예상 URL로 다시 경로화합니다 (및/또는 일반적인 철자 또는 요청이 있다고 생각되는 것에 대한 경로를 추가). 그러나 이것은 문제를 완전히 해결하는 솔루션이 아니므로 사용자 정의 오류 페이지를 구현하십시오 귀하의 신청서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top