Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在同一视图中的两个位置重用HTML_Asp.net_Asp.net Mvc_Razor - Fatal编程技术网

Asp.net 在同一视图中的两个位置重用HTML

Asp.net 在同一视图中的两个位置重用HTML,asp.net,asp.net-mvc,razor,Asp.net,Asp.net Mvc,Razor,我有一块HTML(它是一个菜单),在视图的HTML中有两个位置 如何在两地重复使用 我知道我可以将HTML放在一个单独的.cshtml中,然后使用@HTML.Partial(“菜单”),但由于它只在同一个视图中需要,所以有一个单独的文件似乎有些过分 还有其他方法吗?使用局部视图来避免代码重复,即使在同一视图中,也比必须复制代码要好。在发布模式下,这些视图的位置将被缓存,并且在主视图中多次包含它们不会对性能造成影响。使用局部视图避免代码重复,即使在同一视图中,也比必须复制它要好。在发布模式下,这些

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

如何在两地重复使用

我知道我可以将HTML放在一个单独的
.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帮助程序。