1

こんにちはみんな私はRazor構文でこの奇妙な問題を抱えています。

同じコードナゲットをRazor構文で記述しましたが、インライン式とマルチステートメントブロックにのみ違いがあります。

About.cshtml

   <!-- Single statement blocks -->
   <p>
       Put content here.
       @Html.SubmitButton("You are in About")
   </p>

レンダリングされた出力:
ここに画像の説明を入力してください

Index.cshtml

<!-- Inline expressions BUT DOESNT WORKS-->
@{ Html.SubmitButton("okay in Index");}

<!-- Multi-statement block BUT DOESNT WORKS-->

@{ 
   Html.SubmitButton("You are in Index");
   Html.CheckBox("A Check Box");
 }

レンダリングされた出力: ここに画像の説明を入力してください

PS:スナップショットの入力ボタンのテキストを無視します。

4

1 に答える 1

4

htmlhelpersは値のみを返します。

@コードブロック内であっても、それらの値をどう処理するかをRazorに指示する必要があります(HTMLバッファーに出力します)。

したがって、この場合のコードブロックは気にしないでください。そこには、htmlヘルパー以外のコードがないため、冗長になります。

ただし、ブロック内に配置する他のコードがあったとしても、ヘルパーの前に@:を付ける必要があります。

@{
    var myVar = "something";
    // and so on ...

    @Html.SubmitButton("You are in Index");
    @Html.CheckBox("A Check Box");
 }
于 2012-08-13T09:26:20.203 に答える