1

大家好,我对 Razor 语法有一个奇怪的问题。

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

关于.cshtml

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

渲染输出:
在此处输入图像描述

索引.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-helpers 之外没有其他代码。

但是,即使在块中放置了其他代码,您仍然需要在助手前面加上@

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

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