有人可以解释为什么第一个有效但第二个不起作用
@Html.ActionLink("Go to Link", "action")
@
{
Html.ActionLink("Go to Link", "action");
}
|
答案 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