在SAME视图中的两个位置重用HTML

时间:2017-02-17 13:26:42

标签: asp.net asp.net-mvc razor

我有一大块HTML(它是一个菜单),它位于视图的HTML中的两个位置。

如何在两个地方重复使用它?

我知道我可以将HTML放在单独的int i=1; for(String name:userNames){ System.out.println("Player"+i+" : "+name); i+=1; } 中然后使用.cshtml,但由于它只需要在同一个视图中,所以拥有一个单独的文件似乎有点过分了。

还有其他办法吗?

2 个答案:

答案 0 :(得分:2)

使用局部视图来避免代码重复,即使在同一视图中,也比必须复制它更好。在发布模式下,这些视图的位置会被缓存,并且不会在主视图中多次包含它们对性能产生影响。

答案 1 :(得分:0)

这也可以使用@helper语法来完成:

@MyMenu()

<!-- another place on same page -->
@MyMenu()

<!-- On same page -->
@helper MyMenu
{
   <!-- Shared HTML here -->
}

https://weblogs.asp.net/scottgu/asp-net-mvc-3-and-the-helper-syntax-within-razor

我不确定使用@helper是否有任何缺点,但在这种情况下,HTML不需要跨页面共享,仅在同一页。