2011-03-01 5 views
2

여러 가지 방법으로 시도해 보았습니다.내 사용자 정의 컨트롤에서 내 viewmodel에 액세스 할 수없는 이유는 무엇입니까?

1 :

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNameSpace.MyModel>" %> 

2 :

this.Model 내가보기를 기대하는 다른 것. 프로젝트의 다른 컨트롤과 페이지는 이것들에 접근 할 수 있으며, 개발자들 중 누구도 자신의 능력을 증명할 수없는 이유를 말할 수 없습니다. 어떤 아이디어?

EDIT

그 이후로 몇 가지 컨트롤과 페이지를 만들었습니다. 경우에 따라 intellisense는 this.Model을 문제없이 찾습니다. 또한 Html.RenderPartial()과 같은 다양한 것들을 발견합니다. 그래서 인텔리 센스가보기에서 작동하지 않는다고 말하는 당신들에게는 틀 렸습니다. 그렇습니다. 그러나 그것은 모든 견해들 사이에서 일관성이 없습니다. 지금까지 나와 다른 개발자가 말할 수있는 한, 나는 다른 것을하지 않습니다. 내가 시도한 것들 :

  • 솔루션 닫기
  • 솔루션 빌드
  • 빌드 다시 빌드, 일반 빌드 또는 분석 빌드 빌드

때때로 이러한 단계로 문제가 해결되며, 하지만 일부 컨트롤의 경우 빨간색 스퀴 글리 라인을 지울 수 없습니다. 런타임 오류가 발생하지 않기 때문에 세상 끝은 아니지만 여기에서 무슨 일이 벌어지고 있는지 이해하고 싶습니다. 확실히 누군가는 이것을 경험하고 문제의 근원을 알게되었습니다.

+1

첫 번째 정의는 올바른 것입니다. 뷰 모델을 어떻게 지나가고 있습니까? 네가 네가 그것에 접근 할 수 없다는 것은 무엇을 의미합니까? 오류 메시지가 나옵니까? 좀 더 설명 해주십시오. –

+6

꺽쇠 괄호가 하나 빠져 있습니다. 'MyModel' 다음에 끝에'> '이 있어야합니다. 그것이 오타인지 확실하지 않습니다. –

+2

가져온 네임 스페이스는 "상속"선언의 일반 모델 클래스와 완전히 동일합니다. 가져 오기는 "MyNameSpace"여야합니다. –

답변

3

또한의 Web.config에 추가 시도 할 수 있습니다 :

<namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="MyHtmlHelperLibrary.HtmlExtensions"/> 
    <add namespace="MyOtherNamespace"/> 
    </namespaces> 
+0

제품은 Platform의 Web.config에 액세스 할 수 없습니다. 생각해 줘서 고마워. – Samo

+0

@Samo -? 귀하의 의견은 이해가되지 않습니까? web.config 파일에 물리적으로 액세스 할 수 없다는 말입니까? – Rob

+0

예. 내 제품은 여러 제품의 플랫폼 역할을하는 솔루션을 기반으로합니다. 제품은 플랫폼 솔루션의 코드를 만질 수 없습니다. – Samo

관련 문제