ASP.NET MVC,@在grid.GetHtml();

时间:2013-03-08 03:57:16

标签: asp.net-mvc

对于ASP.NET,MVC应用程序,当使用带有Razor语法的grid时,为什么我需要在行@前面grid.GetHtml();

示例 -

@{
  var grid = new WebGrid(Model);

  @grid.GetHtml();

 }

grid.GetHtml(); @{ }与{{1}}不一致吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

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

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

使用@时,该行转换为:

Response.Write(grid.GetHtml());

答案 1 :(得分:0)

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

grid.GetHtml()

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

@grid.GetHtml()

有些帮助者不需要在声明之前放置@。

例如

Html.RenderPartial()

因为MVC将生成的html写入响应流。因此,此声明应包括在

  

@ {   }

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

为它调用print

答案 2 :(得分:0)

虽然你在Razor视图引擎中完全支持你做了什么,但有时不能做得不同,最好更具体一点:

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

@grid.GetHtml();

因此要明确将代码与输出分开。我认为更好的代码/视图可读性是有意义的。