[asp.net-mvc]MVC Html.ActionLink 不呈现。你可以发现自己在做什么错了吗?

标签: Asp.net-MVC Razor
发布时间: 2016/9/29 22:51:50
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有 Html.ActionLink 里面的 IF 语句中不呈现超链接对我来说如预期的分部视图。我在行上放置一个断点,并证实事实上满意的 IF 语句和运行代码。我也,只是作为一项额外的措施,试图代以硬的字符串的子字符串。为什么没有链接渲染对我来说这段代码有什么想法?

<p>
    Resume (Word or PDF only): @if (Model.savedresume.Length > 0) { Html.ActionLink(Model.savedresume.Substring(19), "GetFile", "Home", new { filetype = "R" }, null); }
</p>

解决方法 1:

@ 之前Html.ActionLink(...)

Razor 用 @ 为很多不同的目的和大多数时间它是相当直观的但在这种情况下它是容易被忽视的问题。

@if (Model.savedresume.Length > 0) // This @ puts Razor from HTML mode 
                                   // into C# statement mode
{ 
    @Html.ActionLink( // This @ tells Razor to output the result to the page,
                      // instead of just returning an `IHtmlString` that doesn't
                      // get captured.
        Model.savedresume.Substring(19), 
        "GetFile", "Home", new { filetype = "R" }, 
        null) // <-- in this mode, you're not doing statements anymore, so you
              //     don't need a semicolon.
}
官方微信
官方QQ群
31647020