Asp.net 在同一视图中的两个位置重用HTML
我有一块HTML(它是一个菜单),在视图的HTML中有两个位置 如何在两地重复使用 我知道我可以将HTML放在一个单独的Asp.net 在同一视图中的两个位置重用HTML,asp.net,asp.net-mvc,razor,Asp.net,Asp.net Mvc,Razor,我有一块HTML(它是一个菜单),在视图的HTML中有两个位置 如何在两地重复使用 我知道我可以将HTML放在一个单独的.cshtml中,然后使用@HTML.Partial(“菜单”),但由于它只在同一个视图中需要,所以有一个单独的文件似乎有些过分 还有其他方法吗?使用局部视图来避免代码重复,即使在同一视图中,也比必须复制代码要好。在发布模式下,这些视图的位置将被缓存,并且在主视图中多次包含它们不会对性能造成影响。使用局部视图避免代码重复,即使在同一视图中,也比必须复制它要好。在发布模式下,这些
.cshtml
中,然后使用@HTML.Partial(“菜单”)
,但由于它只在同一个视图中需要,所以有一个单独的文件似乎有些过分
还有其他方法吗?使用局部视图来避免代码重复,即使在同一视图中,也比必须复制代码要好。在发布模式下,这些视图的位置将被缓存,并且在主视图中多次包含它们不会对性能造成影响。使用局部视图避免代码重复,即使在同一视图中,也比必须复制它要好。在发布模式下,这些视图的位置将被缓存,并且在主视图中多次包含它们不会对性能造成影响。这也可以通过
@helper
语法完成:
@MyMenu()
<!-- another place on same page -->
@MyMenu()
<!-- On same page -->
@helper MyMenu
{
<!-- Shared HTML here -->
}
@MyMenu()
@我的菜单()
@助手我的菜单
{
}
我不确定使用
@helper
是否有任何缺点,但在这种情况下,HTML不需要跨页面共享,只需要在同一页面内共享。这也可以通过@helper
语法完成:
@MyMenu()
<!-- another place on same page -->
@MyMenu()
<!-- On same page -->
@helper MyMenu
{
<!-- Shared HTML here -->
}
@MyMenu()
@我的菜单()
@助手我的菜单
{
}
我不确定使用
@helper是否有任何缺点,但在这种情况下,HTML不需要跨页面共享,只需要在同一页面中共享。@HTML.Partial(“菜单”)
听起来是处理此用例的正确方法。@HTML.Partial(“菜单”)
听起来是处理此用例的正确方法。谢谢。但我仍然认为,在这种情况下,有一个单独的文件是过分的。在这个场景中,我至少有两个视图。这意味着我需要创建两个额外的文件。好吧,那你为什么在这里问你是否认为这是一个过度的行为?因为我在想还有另一种方法,对于不在不同视图之间共享HTML的特定场景。在ASP.NET MVC中重用标记的方法是通过部分视图或自定义HTML帮助程序。谢谢。但我仍然认为,在这种情况下,有一个单独的文件是过分的。在这个场景中,我至少有两个视图。这意味着我需要创建两个额外的文件。好的,那么为什么你在这里问你是否认为这是一个过度的行为?因为我在想,对于这个特定的场景,你不需要在不同的视图之间共享HTML。在ASP.NET MVC中重用标记的方法是通过部分视图或自定义HTML帮助程序。