Razor语法不能渲染多语句代码块

时间:2012-08-13 09:15:01

标签: asp.net asp.net-mvc visual-studio-2010 razor html-helper

大家好,我对Razor Syntax有这个奇怪的问题。

我用Razor语法编写了相同的代码块,只有内联表达式和多语句块的区别。

About.cshtml

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

呈现输出:
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");
 }

呈现输出 enter image description here

P.S:忽略快照中的输入按钮文本。

1 个答案:

答案 0 :(得分:4)

仅htmlhelpers 返回值。

即使在代码块内部,您仍然需要@告诉Razor如何处理这些值(将它们打印到HTML缓冲区)。

所以在这种情况下从不介意代码块,这将是多余的,因为除了html-helpers之外没有其他代码。

但是即使在块中放置了其他代码,您仍然需要在@前面添加帮助程序:

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

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