MVC Razor语法澄清

时间:2013-05-02 03:45:59

标签: asp.net-mvc

有人可以解释为什么第一个有效但第二个不起作用

@Html.ActionLink("Go to Link", "action")


@
{
Html.ActionLink("Go to Link", "action");
}
|

2 个答案:

答案 0 :(得分:0)

将第二个封装在代码块中。类似于代码隐藏中的c#代码(控制器,控制台应用程序,winforms),您不会告诉编译器如何处理它。所以你只是让它运行代码。这就像说:

string a;
a="5";

编译器接下来不知道如何处理a。你想在控制台应用程序中写出Console.Write(a)吗?所以在MVC中你需要告诉剃须刀引擎如何处理它。通过在html帮助器的开头添加神奇的@,您告诉剃刀引擎实际将其写出来,使用ActionLink生成的字符串

@
{
    @Html.ActionLink("Go to Link", "action");
}

答案 1 :(得分:0)

第一个是表达式,第二个是代码块。看看Haack的quick reference