2012-11-15 3 views
1

asp.net mvc에서 내보기에 약간의 문제가 있습니다. 내 using 지시문의 네임 스페이스가 뷰의 네임 스페이스와 충돌하여 내 Razor 생성 클래스에서 컴파일 오류가 발생합니다. @model 지시어에도 같은 문제가 있었지만 global :: alias를 사용하여 수정했습니다. 어떤 이유로, 내 @using에서 동일한 작업을 수행하면 "유형 또는 네임 스페이스 '전역'을 찾을 수 없습니다 ..."오류가 발생합니다.내 View에서 using 지시문과 함께 C# Global 네임 스페이스 연산자를 사용하려면 어떻게해야합니까?

@using SampleSpace.System.Items 

@model global::SampleSpace.System.Items.Thing 

내가

@using global::SampleSpace.System.Items 

@model global::SampleSpace.System.Items.Thing 

을 사용하고 싶지만 상기 오류가 발생하는 유지 : 여기 지금있는 것입니다. 보기에서 using 지시문을 사용하는 데 어떤 트릭이 있습니까? 아니면 허용되지 않는 이유가 있습니까?

답변

0

이 문제를 극복하는 가장 간단한 방법은 파일 아래의 사용자 지정 도구 네임 스페이스를 조정하는 것입니다. 충돌을 피하기 위해이 값을 변경할 수 있습니다.

3

정확히이 질문에 대한 답변을 모르겠지만 관심있는 네임 스페이스를 Views 폴더의 web.config에 추가하여 문제를 해결할 수 있습니까?

<system.web.webPages.razor> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <!-- snip --> 
     <add namespace="SampleSpace.System.Items" /> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 

이 일반적으로 귀하의 의견은 네임 스페이스를 "사용"할 필요가 좋습니다 - 그것은 뷰 자체에서 혼란을 유지 - 당신이 생각 설명한 충돌 시나리오에서이 테스트를하지 않았습니다.

또는 방지하기 위해 다시이 방법에 가을 충돌 :

@using items = SampleSpace.System.Items 

희망 도움이됩니다.

+0

web.config에 넣으면 그 페이지에서 많은 수의보기가 있고 그 중 일부에 대한 네임 스페이스 만 포함하기 때문에 global ... ::, not ideal을 사용할 수 있으므로 도움이됩니다. . 나는 여전히 뷰 자체에서 전역을 사용할 수없는 이유가 궁금합니다. – Stu