2009-11-22 4 views
4

ASP.Net MVC 1.0을 하나의 시스템에서 실행하려했으나이를 지나칠 수 없습니다. 나는 새로운 MVC 프로젝트 (C#)를 만든다. 그것은 모든 폴더,보기, 컨트롤러, 모델 등 모든 좋은 만듭니다. 그런 다음 F5 키를 누르면 다음이 표시됩니다.'System.Web.Mvc.HtmlHelper'에 'RenderPartial'에 대한 정의가 없습니다. - ASP.Net MVC

d : \ VSCode2008 \ MVC \ MvcApplication1 \ Views \ Shared \ Site.Master (19) : 오류 CS0117 : 'System.Web.Mvc.HtmlHelper' ;

httpHandler.ProcessRequest (HttpContext.Current)에 대한 'RenderPartial'

이 다음 줄에서 발생 정의를 포함 in Default.aspx.cs

RenderPartial()을 사용하여 로그온 부분을 렌더링하려고 할 때 나타나는 것처럼 보입니다.

버전 3.51의 .Net 프레임 워크가 설치되어 있습니다. 버전 1.0의 MVC를 설치했으며, 어셈블리에는 HtmlHelper의 확장 메소드로서 RenderPartial()이 명확하게 있습니다.

비슷한 사람이 있습니까? 베타 및 RC와 유사한 문제에 대한 게시물을 찾았지만 제안 된 수정 사항은 적용되지 않았습니다.

MVC의 이론을 좋아하지만 게임을 실사시키지 않습니다!

답변

18

여기에 명백한 내용을 배제하려고하지만 web.config의 네임 스페이스 섹션에이 것을 넣을 수 있습니까?

<add namespace="System.Web.Mvc.Html"/> 
+0

네, 고마워요. 웹 설정에서 이걸 가지고 있어요. (프로젝트 레벨과 뷰 아래에 2 개의 web.config가 있습니다.) –

+0

이걸이 네임 스페이스에 사용하면됩니다. 내 오류가 수정되었습니다. System.Web.Mvc.Html은 HtmlHelper 클래스의 확장을 포함해야합니다. – agradl

+0

더 구체적으로 system.web/pages/namespaces – garryp

2

오류 메시지에 따르면, 사용자는 System.Web.Mvc.HtmlHelper을 참조하고 있습니다. Reflector에서 System.Web.Mvc dll을보고 있는데 System.Web.Mvc.Html이 아니라 System.Web.Mvc.HtmlHelper 인 네임 스페이스에 RenderPartial이 있다는 것을 알 수 있습니다.

+0

에 감사드립니다. 로버트에게 감사드립니다. 나는 똑같은 것을 보았습니다. 나는 프로젝트 (또는 asp.net 웹 프로젝트)를 실행할 때 web.config - System.Codedom의 unrecornnised 섹션에 대해 불평한다는 것을 잊어 버렸다. 아마 내 VS2008 업데이 트가 필요 생각 - 비록 내가 거기에있는 것처럼 보이지 않는 sp1을 설치 생각. –

+0

시도한 sp1 - 수정 없음. Renistalled VS2008 - 수정 없음. 나는 재 이미지가 여기에서 가장 빠른 선택일지도 모른다. ... –

+0

고마워, Robert. 정말 도움이 되었습니까 –

5

당신은 이것이 바보 같다고 생각할 수도 있지만, 나는 똑같은 문제가있었습니다. 나는 1.0.0.0을 실행하는 MVC 애플 리케이션을 가지고 있었고 갑자기 멈추어 서 RenderPartial이 정의에 없다는 것을 나에게 알렸다. 글쎄, 내 web.config를 정리하는 동안 미쳐 버렸으므로이 섹션을 제거했다. 다시 추가하면 모든 것이 다시 작동합니다. 런타임시 클래스 확장이로드되는 방식과 관련이 있다고 확신합니다.

어쨌든, 내 web.config에 이것을 다시 추가하면 내 컴퓨터에서 작동합니다. ;.)

<system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
        type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <providerOption name="CompilerVersion" value="v3.5"/> 
      <providerOption name="WarnAsError" value="false"/> 
     </compiler> 

     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" 
        type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
      <providerOption name="CompilerVersion" value="v3.5"/> 
      <providerOption name="OptionInfer" value="true"/> 
      <providerOption name="WarnAsError" value="false"/> 
     </compiler> 
    </compilers> 
</system.codedom> 
+0

아하! 나는 정확히 똑같은 짓을 했어! doh! –

+0

나를 위해 일했습니다! 감사! –

5

당신은 뒤에 코드에서 그것을 참조하고 있기 때문에 (즉하여 default.aspx.cs는) 당신은 파일의 맨 위에있는 네임 스페이스를 포함해야합니다.

using System.Web.Mvc.Html;

은 RenderPartial 확장 메서드가 포함 된 네임 스페이스입니다.

+0

그것은 나를 위해 그것을했다, 감사합니다. – BjarkeCK

1

또 다른 가능한 문제점 (오류 문자열에 따라 다름)은 확장 메서드가 있지만 컴파일러가 매개 변수를 알려진 메서드 매개 변수와 일치시킬 수 없다는 것입니다. T4MVC (멍청한 놈)를 사용하고 내가 부른 액션의 이름 앞에 ActionNames를 추가하는 것을 잊어 버렸습니다.

관련 문제