ASP.NET MVC Razorレンダリング

次のコードは、私の子アクションをレンダリングするのはなぜですか?

<div class='h-l'>
  @if (ViewBag.Hide)
  {
     @Html.Action(MVC.City.GetCitiesList().AddRouteValue("makeBig", false));
  }
</div>

しかし、 @ Html.Action の前に@を削除すると、何も描画されません。

1

1 答え

From MSDN

ChildActionExtensions.Action Method.
Invokes a child action method and returns the result as an HTML string.

メソッドとして文字列を判断するには、 @ を使用する必要があります。 ASP.Net @ Symbol をご覧ください。

2
追加された
しかし、もし私がコードブロックの中にいたら、なぜ私はそれをしなければならないのですか?
追加された 著者 SiberianGuy,
Shymepですが、@をタイプしない場合はなぜこの "文字列"をレンダリングしませんか?
追加された 著者 SiberianGuy,
Shymep、説明をありがとう
追加された 著者 SiberianGuy,
理由は、コードブロックでhtmlタグを使用できるためです。そして、それらの中に文字列を挿入することができます。したがって、@のないコマンドは単純な文字列として判断されます。
追加された 著者 Shymep,
残念ながら、コードブロック内のレンダリングを記述するMDSNに関する記事を見つけることに成功していません。レンダリングのための@答えが正確に見えます。さもなければそれはちょうどコマンドです(タグブロックの中にない場合)。
追加された 著者 Shymep,