Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Razor语法不呈现多语句代码块_Asp.net_Asp.net Mvc_Visual Studio 2010_Razor_Html Helper - Fatal编程技术网

Asp.net Razor语法不呈现多语句代码块

Asp.net Razor语法不呈现多语句代码块,asp.net,asp.net-mvc,visual-studio-2010,razor,html-helper,Asp.net,Asp.net Mvc,Visual Studio 2010,Razor,Html Helper,大家好,我对剃须刀语法有个奇怪的问题 我用Razor语法编写了相同的代码块,只是内联表达式和多语句块有所不同 关于.cshtml 把内容放在这里。 @Html.SubmitButton(“您在大约”) 渲染输出: Index.cshtml @{Html.SubmitButton(“索引中的OK”);} @{ SubmitButton(“您在索引中”); 复选框(“复选框”); } 渲染输出: p.S:忽略快照中的输入按钮文本。htmlhelpers仅返回值 即使在代码块内部,您

大家好,我对剃须刀语法有个奇怪的问题

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

关于.cshtml



把内容放在这里。
@Html.SubmitButton(“您在大约”)

渲染输出:

Index.cshtml


@{Html.SubmitButton(“索引中的OK”);}
@{ 
SubmitButton(“您在索引中”);
复选框(“复选框”);
}
渲染输出:

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

htmlhelpers仅返回值

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

因此,在这种情况下,代码块是多余的,因为除了html帮助程序之外,没有其他代码

但是,即使有其他代码要放在块中,您仍然需要在helpers前面加上
@

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

    @Html.SubmitButton("You are in Index");
    @Html.CheckBox("A Check Box");
 }
htmlhelpers仅返回值

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

因此,在这种情况下,代码块是多余的,因为除了html帮助程序之外,没有其他代码

但是,即使有其他代码要放在块中,您仍然需要在helpers前面加上
@

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

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

奇怪的是,
var
语句和
Html.Submit(“”
都是有效的C#语句,那么为什么要区别对待它们呢?它们实际上并没有被区别对待。如果没有
@
,Html.CheckBox将执行它应该执行的操作——返回一个字符串,然后您可以捕获并处理该字符串
@Html.CheckBox(…)
只是
响应的简写。Write(Html.CheckBox(…)
所以简单点说,任何我想呈现为Html的东西,我都可以在上面加上
@
符号?我相信任何可以接受
.ToString()
的c值都应该是这样的。所以在我的代码中,您可以这样输出
@myVar
。Razor识别HTML标记,并将自动输出它们,而无需@或
响应。Write
,但纯文本(不包含任何周围的标记标记)需要@for Razor才能理解。更多信息:这很奇怪,
var
语句和
HTML.Submit(“”)
这两个都是有效的C#语句,那么为什么要区别对待它们呢?它们实际上并没有被区别对待。如果没有
@
,Html.CheckBox将执行它应该执行的操作——返回一个字符串,然后您可以捕获并处理该字符串
@Html.CheckBox(…)
只是
响应的简写。Write(Html.CheckBox(…)
所以简单点说,任何我想呈现为Html的东西,我都可以在上面加上
@
符号?我相信任何可以接受
.ToString()
的c值都应该是这样的。所以在我的代码中,您可以这样输出
@myVar
。Razor识别HTML标记,并将自动输出它们,而无需@或
响应。写入
,但纯文本(不包含任何周围的标记标记)需要@for Razor才能理解。更多信息:
@{
    var myVar = "something";
    // and so on ...

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