2011-04-08 3 views
0

HTML을 도우미와 도움이 필요하십니까 : http://develoq.net/2011/how-to-create-custom-html-helpers-for-asp-net-mvc-3-and-razor-view-engine/ 내 Html 헬퍼 클래스 내 MVC 프로젝트의 루트 디렉토리에 있습니다MVC3 : 나는 기본적으로이 글을 따라

: 제가보기에서 참조하는 경우

using System.Web.Mvc; 

namespace MvcHtmlHelpers 
{ 
    public static class HtmlHelperExtensions 
    { 
     public static MvcHtmlString Hello(this HtmlHelper helper) 
     { 
      return new MvcHtmlString("Hello!"); 
     } 
    } 
} 

: @using MvcHtmlHelpers; 인텔리 센스를 받고 뷰 코드가 괜찮은지 확인합니다 (빨간색 밑줄 없음).

보기에서 참조하지 않고 2 개의 web.config 파일 중 하나 또는 둘 모두에서 참조하면 intellisense가 표시되지 않고 @Html.Hello()에 빨간색 밑줄이 표시됩니다.

이제 가장 좋은 부분은 내가 실행할 때 아무 곳에 나 참조하지 않아도 완벽하게 렌더링된다는 것입니다. 이상적으로는 web.config에서 한 번 참조하고 해당 뷰에서 참조하지 않고 뷰에서 인텔리 센스를 얻고 싶습니다. 감사!

업데이트 : 뭔가 어딘가에 캐시 된 것 같아요. 아무데도 참조되지 않으면 렌더링되지 않습니다. 죄송 해요. 나는 여전히 인텔리 센스와 검증을보기를 원합니다. 감사. 당신이 면도기보기 엔진을 사용하는 경우

답변

3

당신은 ~/web.config~/Views/web.config 아니라 그것을 참조 할 필요가 : 당신도 얻을 수 있습니다 그것은 당신의 행운의 날 경우

<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="MvcHtmlHelpers" /> 
     </namespaces> 
    </pages> 
</system.web.webPages.razor> 

그런 다음, 가까운 컴파일과 면도기보기를 다시 열고 Intellisense. 그렇지 않으면 Microsoft에서 저주 할 수 있습니다.

+0

그게 내가하고있는 일이다. 그렇다. – Dimskiy

+0

@Dimskiy, 네임 스페이스를'~/Views/web.config'에 추가하면 애플리케이션을 실행할 때 최소한 작동하게됩니다. 인텔리 센스에 관한 한, 내 대답에서 말했듯이, 그것이 당신의 행운의 날인지 여부에 달려 있습니다. 일반적으로 작동하지만 ... –

+1

하! 그래서 VS를 닫고 다시 열었습니다! 나는 키보드에서 머리를 치려고하고 있었다. 고마워요! 결국 운이 좋은 날이라고 생각합니다.) – Dimskiy

관련 문제