asp.net-mvc-3 - 带有 HTML.ActionLink 的 ASP.NET MVC Razor 三元

标签 asp.net-mvc-3 razor ternary-operator

我正在尝试回答这个问题:

How to use ternary operator in razor (specifically on HTML attributes)?

带有一个 Html.ActionLink;像这样:

@(ViewData["page"] == "Page1" ? "Page1" : Html.ActionLink("Page 1", "Page1", "Index"))

这可能吗?

最佳答案

三元运算必须从两半返回相同的类型。
您正在返回 String在左边,但是一个 IHtmlString在右边。

将其更改为

@(ViewData["page"] == "Page1" ? Html.Raw("Page1") : Html.ActionLink(...))

您可能还想将其移动到 HTML 帮助程序扩展方法中。

关于asp.net-mvc-3 - 带有 HTML.ActionLink 的 ASP.NET MVC Razor 三元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772174/

相关文章:

c# - 发布到模型的 MVC DropDownList 值未绑定(bind)

c# - MVC 4 和 Razor 的扩展方法

javascript - 为什么 0 < -0.75 < 1 为真?

asp.net-mvc - 在 ASP.NET MVC3 中使用 Razor 的文件上传控件

asp.net-mvc-3 - MVC 3 - 其他 View 数据未出现在模板编辑器中

c# - OnActionExecuting 在开始行动之前添加到模型

c# - 使用 AJAX 将字符串传递给 Controller

c# - 在原始按钮所在的位置显示另一个按钮

c++ - 这个三元条件表达式是如何执行的?

javascript - 是否可以在不重复所述值的情况下从三元运算返回比较值+字符串?