ASP.NET MVC Бритвенный троичный с HTML.ActionLink - PullRequest
4 голосов
/ 24 апреля 2011

Я пытаюсь сделать ответ на этот вопрос:

Как использовать троичный оператор в бритве (особенно для атрибутов HTML)?

С Html.ActionLink; как то так:

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

Возможно ли это?

1 Ответ

6 голосов
/ 24 апреля 2011

Тройная операция должна возвращать одинаковый тип с обеих половинок.
Вы возвращаете String слева, но IHtmlString справа.

Измените его на

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

Вы также можете переместить это в метод расширения HTML-помощника.

...