2011-09-09 5 views
2

ActionLinkが表示されない奇妙な問題があります。if-statement内のActionLinkが表示されない

@if (User.IsInRole("Allow Create")) { 
    Html.ActionLink("Add a new item", "Create"); 
} 

が、私は多分私の役割と権限が正しく設定されていなかったと思ったが、私は、デバッガを経て、そして確かにif文は成功します。私は、私の見解では、このコードを持っています。アクションリンクを作成するコードに到達し、エラーはありません。

しかし、ページが読み込まれると、リンクはありません。それは隠されていないか何かのいずれかであり、ソースにはまったくない。

ここで間違っていることは誰でも知っていますか?

答えて

7

あなたが説明については、余分な@

@if (User.IsInRole("Allow Create")) { 
    @Html.ActionLink("Add a new item", "Create"); 
} 

を必要とする:@if (User.IsInRole("Allow Create")) {は、コードブロック内であなたを置き、約悩まずに、あなたが関数を呼び出したかのようにあなただけのHtml.ActionLink(..)を呼び出しているかみそりフィギュア戻り値実際にはHtml.ActionLinkの結果をhtmlとして出力したいので、接頭辞@が必要なコードとテキストを混在させています。

だけで説明するために、以下は上記のコードと同じ結果になります。ここでは

@if (User.IsInRole("Allow Create")) { 
    var url = Html.ActionLink("Add a new item", "Create"); 
    @url; 
} 

がいいQuick Reference

です
関連する問題