ActionLink无法在“if”块内渲染

时间:2012-05-19 19:12:18

标签: asp.net-mvc asp.net-mvc-4

我有一个ASP.Net MVC 4视图,它应该有条件地呈现一个ActionLink。但是,ActionLink不会在最终输出中呈现。为了诊断问题,我在所需的ActionLink之前和之后添加了文本,并在if正文之外复制了ActionLink代码。

结果是if正文之外的ActionLink代码以及之前/之后的文本呈现但不是我真正想要的ActionLink。

@Html.ActionLink("NEXT", "_NextPage")

@if (true /*!Model.IsFinalPage*/) {
    <text>Pre</text>
    Html.ActionLink("NEXT", "_NextPage");
    <text>Post</text> 
}

输出:

NEXT Pre Post

(NEXT是一个合适的链接)

1 个答案:

答案 0 :(得分:5)

action-link需要@在这里工作。

在razor中,普通的Html.ActionLink 返回 html-string,但是如果没有@,它就不会被写入缓冲区。所以

@Html.ActionLink 

相同
Response.Write(Html.ActionLink);