Asp.net mvc 3 无法动态调度扩展方法

Asp.net mvc 3 无法动态调度扩展方法,asp.net-mvc-3,razor,html-helper,Asp.net Mvc 3,Razor,Html Helper,我在尝试使用Html助手时遇到了这个问题。我已经读到动态铸造应该工作,但我不知道如何在我的情况下得到它。代码: @{ Html.LinkIfHasData(top.Text, Html.MenuTargetURL(top), false, new { rel = "tab" + @top.ID }); } LinkIfHasData返回MvcHtmlString,MenuTargetURL返回string 我试过这个: @{ (string)Html.LinkIfHa

我在尝试使用Html助手时遇到了这个问题。我已经读到动态铸造应该工作,但我不知道如何在我的情况下得到它。代码:

@{ 

 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

您已将助手插入代码块中,因此生成的HTML不会进入您的视图。从代码块中删除辅助对象,并将其放入视图中。按如下方式更改您的视图:

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

这可能会有所帮助-我正在动态创建一个我在foreach循环中使用的bool。因此,与其使用var IsLocal=。。。我做了什么?IsLocal=。。。现在它开始工作了。