1

ASP.NET、MVC アプリケーションの場合grid、Razor 構文を使用する場合、なぜ@行の前に右が必要なのgrid.GetHtml();ですか?

例 -

@{
  var grid = new WebGrid(Model);

  @grid.GetHtml();

 }

で囲むだけで十分ではありませんgrid.GetHtml();@{ }

ありがとう!

4

3 に答える 3

1

@{} を使用して、変数「グリッド」を宣言するなど、コードの一部を実行するように指定します。

@ がない 2 行目では、構文的にサポートされていない文字列に等しいステートメントだけが残ります。

@ を使用すると、その行は次のように変換されます。

Response.Write(grid.GetHtml());
于 2013-03-08T04:04:42.953 に答える
0

あなたがしたことはRazorビューエンジンで完全にサポートされており、別の方法で実行できない場合がありますが、より具体的にすることをお勧めします:

@{
   var grid = new WebGrid(Model);   
}

@grid.GetHtml();

そのため、コードを出力から明確に分離します。コード/ビューの読みやすさを向上させるのは理にかなっていると思います。

于 2013-03-08T11:54:33.067 に答える
0

@ を使用することは、ページに何かを印刷/書き込むようなものです。

grid.GetHtml()

必要な文字列を生成しますが、この関数は生成された html を印刷することについて何も考えていません。これを行うには、このように書く必要があります

@grid.GetHtml()

ステートメントの前に @ を付ける必要がないヘルパーがいくつかあります。

例えば

Html.RenderPartial()

MVC は生成された html を応答ストリームに書き込むためです。したがって、ここでこのステートメントを含める必要があります

@{ }

ブロックによっては HTML が返される場合があり、"@" を使用して print を呼び出す必要があります。

于 2013-03-08T05:59:55.897 に答える