2011-02-24 5 views
22

내 헬퍼에 대한 인텔리 센스를 얻을 수 없습니다.왜 내 HTML 도우미가 인텔리 센스를 가지고 있지 않습니까?

using System.Web.Mvc; 
using System.Text; 
using System.Web; 

    namespace laget.Web.Helpers 
    { 
     public static class CustomHtmlHelpers 
     { 
      //MY HELPERS 
     } 
    } 

를 내의 Web.config에서 : 내 CustomHtmlHelpers.cs은 다음과 같습니다

<pages> 
     <namespaces> 
     <add namespace="laget.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages"/> 
     <add namespace="System.Web.Helpers" /> 
     </namespaces> 
    </pages> 

내가보기에 <@using laget.Web.Helpers>을 두는 경우에, 나는 인텔리의 문제가 해결 얻을.

Web.config의 코드로 충분하지 않아야합니까?

답변

24

가끔은 제대로 작동하지 않는 것 같습니다. .cshtml 파일을 닫은 다음 다시여십시오. 그런 다음 작동하지 않는 경우 Visual Studio를 다시 시작하십시오. 또한 실제로 프로젝트를 컴파일했는지 확인하십시오. 인텔리 센스는 컴파일되지 않은 도우미와 함께 작동하지 않습니다.

+2

당신이 옳습니다. Visual Studio를 다시 시작하면 바로 사용할 수 있습니다. – MikeB

+0

많은 분들께 감사드립니다! 나는 오늘 그 시간에 적어도 1 시간을 보냈다. :) – MikeB

+0

그래, 나도 이것에 대해 약간의 시간을 보냈다. 고맙게도 궁극적 인 질문은 "당신이 그것을 끄고 다시 시도 했습니까?" 깨진 :) –

0

로컬 페이지에 필요합니다. 나는 이것이 네임 스페이스 해상도와 관련이 있다고 확신한다. 그것은 당신이 지역 사용 진술없이 당신이 무엇을 언급하고 있는지 정확히 알지 못합니다.

6

나는 정확한 Web.config 파일을 편집하지 않을 것이라고 확신합니다.

Views 디렉토리의 네임 스페이스에 네임 스페이스를 추가해야합니다.

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <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="laget.Web.Helpers" /> 
    </namespaces> 
    </pages> 
</system.web.webPages.razor> 
+1

두 파일을 모두 시도했지만 아무 것도 시도하지 않았습니다 ... – MikeB

+1

프로젝트를 언로드 한 다음 다시로드하십시오. –

0

오늘도이 문제가 발생했습니다. 때로는 Visual Studio에서 Razor보기의 창을 닫고 다시 열면 Visual Studio를 완전히 다시 시작하지 않고도이 작업을 수행 할 수 있습니다.

5

실제로 Visual Studio를 재시작 할 필요는 없습니다. .cshtml 파일을 닫았다가 다시 열면됩니다!

+0

감사합니다. VS를 다시 시작하는 것보다 훨씬 낫습니다. 왜냐하면 우리 모두가 영원히 걸리는 것을 알고 있기 때문입니다! :) – SomeRandomDeveloper

0

나는이 문제를 어제 해결하려고했습니다. 헬퍼와 다른 많은 클래스가 포함 된 전자 사전 컴파일 된 dll (프로젝트 이름 ie : MyHtmlHelpers)을 가지고있었습니다.

나는 웹 프로젝트에서 참조 된 어셈블리를 가지고 있었고 모든 "표준"- 헬퍼가 intellisense에 나타 났지만 루트와 뷰 폴더 모두에 네임 스페이스를 추가했지만 아무 것도 작동하지 않았습니다. 프로젝트 도우미를 실행하면 작동하지만 인텔리 센스에서는 작동하지 않습니다.

새 클래스를 추가하고 웹 프로젝트 내에 새로운 html 도우미를 작성하고 web.config에 네임 스페이스를 추가했습니다. 그리고 그것은 효과가있었습니다.

지난 몇 시간 후에 내 웹 프로젝트와 동일한 솔루션에 MyHtmlHelpers-project를 추가하여 마지막 카드를 추가했습니다. 그것은 트릭을했다. 나는 configs에서 아무것도 바꾸지 않았다. 단지 같은 솔루션에 프로젝트를 추가하고, 컴파일 된 dll의 insted 프로젝트에서 point를 참조하도록 변경했다.

이상한가? VS- 버그?

0

잘못된 web.config에 대한 참조를 추가하고있는 것으로 나타났습니다. 그것은 당신이 열면 내가 (당신의 단계

1.Create

을 표시하거나 기존 클래스 라이브러리 프로젝트를 열 것입니다 그래서 지금 ...

0

을 기본 설정 만보기 디렉토리에서의 Web.config없는 새를 기존 MVC5 누 겟 패키지를 제거하십시오.)

2. MVC (5.솔루션 탐색기에서 0) nuget 패키지 ( 마우스 오른쪽 버튼으로 클릭 프로젝트 -> NuGet 패키지 관리 - "마이크로 소프트 ASP.NET MVC")

3.Close>을 검색 MVC에 대한 설치 어떠한 모두 .cshtml 파일 열기

4. 프로젝트 -> 속성 -> 빌드 -> 출력 경로를 프로젝트 "bin /"으로 변경하십시오.

5. 클래스 라이브러리 프로젝트 의 루트에 다음 최소 Web.config를 추가하십시오 (웹 구성 파일 (Web.config를 통해) 구성은 ClassLibrary 어셈블리를 호스팅하는 WebApplication에서 수행해야합니다.

6. 솔루션을 청소하고 빌드하십시오.

7.Open cshtml 파일과 지금 시도 :

0

나는 여전히 작동하지 않는 경우, 사용자 정의 클래스의 속성에 가서 "내용"에서 빌드 작업을 변경해야 할 수 있습니다 발견 컴파일하기". 그게 나를 위해 해결 됐어.

관련 문제