Q:

Razor Syntax not rendering Multi-Statement code nugget

Hello guys I have this weird problem with Razor Syntax.
I have written the same code nuggets in Razor syntax ,having only difference in Inline expression and Multi-statement block.
About.cshtml
   <!-- Single statement blocks -->
   <p>
       Put content here.
       @Html.SubmitButton("You are in About")
   </p>

Rendered Output:

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");
 }

Rendered Output:

P.S: Ignore the input button text in the snapshot.

A:

The htmlhelpers only return values.
Even inside code blocks, you still need the @ to tell Razor what to do with those values (print them to the HTML buffer). 
So never-mind with the code block in this case, it would be redundant, as there's no other code in there but the html-helpers. 
But even if there were other code to be placed within the block, you'd still need to preface the helpers with @:
@{
    var myVar = "something";
    // and so on ...

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

