ActionLink无法在"if"块内渲染

Eri*_* J. 4 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> 
}
Run Code Online (Sandbox Code Playgroud)

输出:

NEXT Pre Post

(NEXT是一个合适的链接)

Fau*_*ust 5

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

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

@Html.ActionLink 
Run Code Online (Sandbox Code Playgroud)

会是一样的

Response.Write(Html.ActionLink);
Run Code Online (Sandbox Code Playgroud)