2011-10-27 12 views
2

Html 헬퍼를 사용하려고하면이 문제가 발생합니다. 역동적 인 캐스팅이 효과가 있다는 것을 읽었지 만 제 경우에는 그것을 얻는 방법을 모르겠습니다. 코드 :확장 메서드를 동적으로 디스패치 할 수 없습니다. mvc3 면도날

@{ 

Html.LinkIfHasData(top.Text, Html.MenuTargetURL(top), false, 
new { rel = "tab" + @top.ID }); 

} 

LinkIfHasData는 MvcHtmlString을 반환하고 MenuTargetURL은 string을 반환합니다.

@{ 

(string)Html.LinkIfHasData(top.Text, (string)Html.MenuTargetURL(top), false, 
new { rel = "tab" + @top.ID }); 

} 

그러나 그것은 작동하지 않습니다

나는이 시도. 어떤 아이디어?

H 당신은 코드 블록 내에서 도우미를 삽입 한

+1

viewmodel은 무엇입니까? –

+0

이 도움이 될 수도 있습니다 - http://stackoverflow.com/questions/4136703/razor-htmlhelper-extensions-not-found –

+0

나는 foreach 루프에서 사용되는 bool을 동적으로 생성하고있었습니다. 그래서 대신 var IsLocal = ... 나는 bool을 했는가? IsLocal = ... 이제는 작동합니다. –

답변

2

, 감사합니다, 이렇게 생성 된 HTML은보기에 가지 않을 것이다. 코드 블록에서 헬퍼를 제거하고 뷰에 인라인으로 배치합니다. 보기를 다음과 같이 변경하십시오.

@Html.LinkIfHasData(top.Text, Html.MenuTargetURL(top), false, 
    new { rel = "tab" + @top.ID }) 
관련 문제