大家好,我对Razor Syntax有这个奇怪的问题。
我用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");
}
呈现输出
P.S:忽略快照中的输入按钮文本。
答案 0 :(得分:4)
仅htmlhelpers 返回值。
即使在代码块内部,您仍然需要@
告诉Razor如何处理这些值(将它们打印到HTML缓冲区)。
所以在这种情况下从不介意代码块,这将是多余的,因为除了html-helpers之外没有其他代码。
但是即使在块中放置了其他代码,您仍然需要在@
前面添加帮助程序:
@{
var myVar = "something";
// and so on ...
@Html.SubmitButton("You are in Index");
@Html.CheckBox("A Check Box");
}