DayTimeCoder
DayTimeCoder

Reputation: 4332

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:
enter image description here

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: enter image description here

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

Upvotes: 1

Views: 746

Answers (1)

Faust
Faust

Reputation: 15404

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

Upvotes: 4

Related Questions