Asp.net-mvc – ASP.NET MVC 3 using Razor – use conditional expression together with the HTML output

asp.net-mvcasp.net-mvc-3razor

I've been bugged with this for many days…(I'm in process of studying ASP.NET MVC 3)

In this link — Razor If/Else conditional operator syntax — is said that the only valid syntax for conditional expression in Razor engine is @(x?y:z)

Alright. Now, how do I write HTML in this conditional expression? I can't use Razor here, following code results in invalid syntax error.

@(item.Manager == null ? @:<i>unassigned</i> : item.Manager.Name)

After some research I discovered HtmlWriter or Html.Raw but neither of them, nor their methods .toString() or .toHtmlString() help because they are not of string but of IHtmlString type.

Thanks for reply!

Best Answer

@(item.Manager == null ? new HtmlString("<i>unassigned</i>") : new HtmlString( item.Manager.Name) )