对于 ASP.NET、MVC 应用程序,当使用grid
Razor 语法时,为什么我需要@
在行前添加 rightbefore grid.GetHtml();
?
例子 -
@{
var grid = new WebGrid(Model);
@grid.GetHtml();
}
周围不grid.GetHtml();
应该@{ }
就够了吗?
谢谢!
对于 ASP.NET、MVC 应用程序,当使用grid
Razor 语法时,为什么我需要@
在行前添加 rightbefore grid.GetHtml();
?
例子 -
@{
var grid = new WebGrid(Model);
@grid.GetHtml();
}
周围不grid.GetHtml();
应该@{ }
就够了吗?
谢谢!
使用@{},您可以指定应该执行一些代码,例如声明变量“grid”。
现在对于第二行,没有@,您只剩下一个等于字符串的语句,甚至在语法上都不受支持。
在使用 @ 时,该行转换为:
Response.Write(grid.GetHtml());
使用 @ 就像在页面上打印/写一些东西。
grid.GetHtml()
将生成所需的字符串,但此函数不知道打印生成的 html。要做到这一点,你必须这样写
@grid.GetHtml()
有些助手不需要在语句之前加上 @。
例如
Html.RenderPartial()
因为 MVC 将生成的 html 写入响应流。因此,这里应该包含这个语句
@{ }
在某些情况下阻止它返回 HTML,我们应该使用“@”为它调用 print
尽管 Razor 视图引擎完全支持您所做的事情,并且有时不能以不同的方式完成,但最好更具体一些:
@{
var grid = new WebGrid(Model);
}
@grid.GetHtml();
所以要清楚地将代码与输出分开。我认为更好的代码/视图可读性是有意义的。