asp.net webpages内容块和帮助器差异

时间:2011-03-18 05:04:24

标签: helpers webmatrix asp.net-webpages

在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")

1 个答案:

答案 0 :(得分:1)

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

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