1

在 asp.net 网页框架中,使用内容块和帮助程序有什么区别?

它们似乎都用于将 HTML 输出到多个页面。它们都可以包含代码并且都可以传递参数。

还有其他区别吗?什么时候应该使用助手而不是内容块?

更多信息:

使用内容块,我们创建一个 .cshtml(例如 _MakeNote.cshtml)文件来保存我们想要插入页面的内容。然后我们使用:

@RenderPage("/Shared/_MakeNote.cshtml") 

将内容插入页面。我们可以像这样将参数传递给内容块:

@RenderPage("/Shared/_MakeNote.cshtml", new { content = "hello from content block" })

它有点像一个包含文件,但我认为不与父页面共享范围。

使用 Helpers,我们在 App_Code 文件夹中创建一个 .cshtml 页面(例如 MyHelpers.cshtml),并将方法放置在我们想要调用的那个页面中。该方法看起来像这样:

@helper MakeNote(string content) {
    <div>@content</div>
}

使用以下方法调用帮助程序:

@MyHelpers.MakeNote("Hello from helper")
4

1 回答 1

1

功能上没有太大区别。帮助程序需要进入 App_Code 文件夹 - 除非您下载 VWD 或 Visual C# Express 并编译二进制文件 - 并且 App_Code 文件夹不能很好地转换为 MVC 框架。当然,这仅在您想在某个时候升级到 MVC 时才相关。

对于像 MakeNote 这样的通用功能片段,我会使用助手。我会为页面的重复站点特定部分使用“内容块”(实际上是部分的)。

于 2011-05-12T06:56:24.623 回答