我的详细信息视图中有if / else语句,如下所示:
@if (Model.SomeProperty != null)
{
Html.RenderAction("MethodName", "ContollerName", new {id=stuff});
}
else
{
<span>Is this showing?</span>
Html.ActionLink("Link Text", "MethodName", "ContollerName", new { Id = something}, null);
}
span渲染,所以我知道else块被击中,但是ActionLink没有出现。但是,如果我将它移出像这样的else块,它可以工作:
@Html.ActionLink("Link Text", "MethodName", "ContollerName", new { Id = something}, null)
我猜我的语法有问题,但我没有看到它。
答案 0 :(得分:2)
Html.ActionLink()
会返回包含IHtmlString
标记的字符串(实际为<a>
)。
你没有对该字符串做任何事情。
您需要通过编写@Html.ActionLink(...)
将字符串打印到页面。 (你仍然可以在代码块中执行此操作)
答案 1 :(得分:1)
答案在于@
!只需添加它。
答案 2 :(得分:1)
应该是:
@if (Model.SomeProperty != null)
{
Html.RenderAction("MethodName", "ContollerName", new {id=stuff});
}
else
{
<span>Is this showing?</span>
@Html.ActionLink("Link Text", "MethodName", "ContollerName", new { Id = something}, null);
}
Html.RenderAction
直接使用流,因此它不需要它,但Html.ActionLink
返回MvcHtmlString
,需要在“就地”输出。