2011-01-31 3 views
5

내 프로젝트 <% if (Model.Folders != null){}%>에서이 코드를 면도기 형식으로 변환 할 때 예외가 발생합니다. "메서드에 대해 과부하가 없습니다. '쓰기에는 0 개의 인수가 필요합니다 내메서드 'Write'에 대한 과부하가 MVC3 면도기 형식의 0 인수를 취함

Html.RenderPartial(ViewData["abc"] as string, Model); 

에 MVC3 면도기 형식, "나는 동적 뷰를 사용하고

+0

이 줄에서도이 오류가 발생했습니다 :'@ {isAlt =! isAlt;}'. 그것은 매우 이상합니다. 저는 부울 변수를 토글하고 싶습니다. 이전에 나는 그것을'@ {var isAlt = true;}'로 선언하고 테이블의 대체 행을 스타일링하는 데 사용되는'class = "@ (isAlt?"alt ": string.Empty)" "로 중간에 사용했습니다. . 이유가 있어야합니다 ... – CallMeLaNN

+0

나는 대답을 가지고있다 : http://stackoverflow.com/questions/4466469/razor-no-overload-for-method-write-takes-0-arguments – CallMeLaNN

답변

7

if 시험은 다음과 같이해야합니다 면도기에서 :

@if (Model.Folders != null) 
{ 
    <div>@Model.Folders</div> 
} 

와이 같은가 :

@{Html.RenderPartial(ViewData["abc"] as string, Model);} 

또는 당신은 또한 상응하는 짧은 조금이다 Partial 방법을 사용할 수 있습니다

@Html.Partial(ViewData["abc"] as string, Model) 
+0

"@ Html.Partial (ViewData [ "abc"] 문자열로, Model) "다음 오류가 발생합니다." 'System.Web.Mvc.HtmlHelper '에는 'Partial'이라는 적용 가능한 메서드가 없지만에 의해 확장 메서드가있는 것 같습니다. 확장 메소드를 동적으로 전달할 수 없습니다. 확장 메소드 구문을 사용하지 않고 확장 메소드를 호출하거나 확장 메소드를 호출하는 것을 고려하십시오. \t " –

+0

@ amir, 뷰는 강력하게 형식화되지 않으므로'Model' 변수를 사용할 수 없습니다. 보기 상단에'@model AppName.Models.SomeModel'과 같은 일부 모델 유형에보기가 강하게 입력되었는지 확인하십시오. –

+0

Stongly Typed, "@model AppName.Models.SomeModel"을 사용했습니다. –

2

내가 같은 문제가 있었다를, 나는 포장하여 해결 내 Html.RenderPartial 다음과 같이

 <text> 
     @{ 
      Html.RenderPartial(ViewData["abc"] as string, Model); 
      } 
    </text> 

또는

<div> 
@{ 
Html.RenderPartial(ViewData["abc"] as string, Model); 
} 
</div> 
관련 문제