我有一大块HTML(它是一个菜单),它位于视图的HTML中的两个位置。
如何在两个地方重复使用它?
我知道我可以将HTML放在单独的int i=1;
for(String name:userNames){
System.out.println("Player"+i+" : "+name);
i+=1;
}
中然后使用.cshtml
,但由于它只需要在同一个视图中,所以拥有一个单独的文件似乎有点过分了。
还有其他办法吗?
答案 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不需要跨页面共享,仅在同一页。