1

对于 ASP.NET、MVC 应用程序,当使用gridRazor 语法时,为什么我需要@在行前添加 rightbefore grid.GetHtml();

例子 -

@{
  var grid = new WebGrid(Model);

  @grid.GetHtml();

 }

周围不grid.GetHtml();应该@{ }就够了吗?

谢谢!

4

3 回答 3

1

使用@{},您可以指定应该执行一些代码,例如声明变量“grid”。

现在对于第二行,没有@,您只剩下一个等于字符串的语句,甚至在语法上都不受支持。

在使用 @ 时,该行转换为:

Response.Write(grid.GetHtml());
于 2013-03-08T04:04:42.953 回答
0

使用 @ 就像在页面上打印/写一些东西。

grid.GetHtml()

将生成所需的字符串,但此函数不知道打印生成的 html。要做到这一点,你必须这样写

@grid.GetHtml()

有些助手不需要在语句之前加上 @。

例如

Html.RenderPartial()

因为 MVC 将生成的 html 写入响应流。因此,这里应该包含这个语句

@{ }

在某些情况下阻止它返回 HTML,我们应该使用“@”为它调用 print

于 2013-03-08T05:59:55.897 回答
0

尽管 Razor 视图引擎完全支持您所做的事情,并且有时不能以不同的方式完成,但最好更具体一些:

@{
   var grid = new WebGrid(Model);   
}

@grid.GetHtml();

所以要清楚地将代码与输出分开。我认为更好的代码/视图可读性是有意义的。

于 2013-03-08T11:54:33.067 回答