私はActionLinkのを知っているが、コードのこの部分ではと思われていない:
new { @title = item.ToolTip, item.Selected == 1 ? "class=selected" : "" }
あなたが「@title」という名前の最初のフィールドwhith、anonimusタイプを宣言しているが、... .. 二番目?!?ここでは、三項演算子を使った式を見ていますが、戻り値は何にも割り当てられていません。 あなたが「item.Selected」の前に、識別子とassignement演算子を追加する必要があります。
new { @title = item.ToolTip, class = item.Selected == 1 ? "selected" : "" }
クラスの値は=「」有効ではありません、あなたは三項演算子でオブジェクト全体を置くことができますしようとすることができれば、このような:
item.Selected == 1 ? new { @title = ... } : new { @title = ..., class = "selected" }
しかし、おそらくこれは動作しません:三項演算子は、(2 anonimousタイプが異なるシグネチャを持つ)結果の型を決定することができません。 「var」型を使用して、まず最初に右の異例のオブジェクトをインスタンス化し、それをmetodに渡すだけです。 いずれにしても、ここにラムダ式はありません。あなたは "ラムダ"の代わりに "匿名型"であなたの答えをタグ付けする必要があります。
@Html.ActionLink(item.PageName,"ContentPage",new { id = item.PageName },new { @title = item.ToolTip, selected = (item.Selected == 1) ? "class=selected" : "" })
を(あなたがHTMLのプロパティ名を欠落していた):
コード内にラムダは実際にはありません。どのようなエラーが表示されているのかを明確にすることはできますか? – marcind