0

詳細ビューに次のような if/else ステートメントがあります。

 @if (Model.SomeProperty != null)
    {
        Html.RenderAction("MethodName", "ContollerName", new {id=stuff});
    }
    else
    { 
        <span>Is this showing?</span>
        Html.ActionLink("Link Text", "MethodName", "ContollerName", new { Id = something}, null);
    }                 

スパンがレンダリングされるので、else ブロックがヒットしたことはわかりますが、ActionLink は表示されません。ただし、このようにelseブロックの外に移動すると、機能します:

@Html.ActionLink("Link Text", "MethodName", "ContollerName", new { Id = something}, null)

構文に問題があると思いますが、わかりません。

4

3 に答える 3

2

Html.ActionLink()タグIHtmlStringを含む文字列(実際には)を返します。<a>

その文字列では何もしていません。

を記述して、文字列をページに出力する必要があります@Html.ActionLink(...)。(コードブロックでそれを行うことができます)

于 2012-10-24T13:33:14.420 に答える
1

答えは@!にあります。追加するだけです。

于 2012-10-24T13:34:48.200 に答える
1

そのはず:

@if (Model.SomeProperty != null)
{
    Html.RenderAction("MethodName", "ContollerName", new {id=stuff});
}
else
{
    <span>Is this showing?</span>
    @Html.ActionLink("Link Text", "MethodName", "ContollerName", new { Id = something}, null);
}

Html.RenderActionストリームで直接動作するため、必要ありませんが、「その場で」出力する必要があるものをHtml.ActionLink返します。MvcHtmlString

于 2012-10-24T13:37:00.740 に答える