【发布时间】:2018-04-14 13:12:38
【问题描述】:
我有一个名为TopBar.cshtml的文件:
<nav class="white" role="navigation">
<div class="nav-wrapper container">
<a id="logo-container" href="#" class="brand-logo">Logo</a>
<ul class="left hide-on-med-and-down">
<li><a href="#">Navbar Link</a></li>
</ul>
<ul id="nav-mobile" class="sidenav">
<li><a href="#">Navbar Link</a></li>
</ul>
<a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a>
</div>
</nav>
如您所见,为菜单项定义了两个相同的部分。一种用于较大的屏幕,一种用于较小的屏幕。在 ASP.NET MVC 中我可以这样做:
<nav class="white" role="navigation">
<div class="nav-wrapper container">
<a id="logo-container" href="#" class="brand-logo">Logo</a>
<ul class="left hide-on-med-and-down">
@Menu()
</ul>
<ul id="nav-mobile" class="sidenav">
@Menu()
</ul>
<a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a>
</div>
</nav>
@helper Menu() {
<li><a href="#">Navbar Link</a></li>
}
换句话说,我可以使用@helper 来获得 HTML 重用 INSIDE 一个且只有一个视图。
但是,据我所知,这已在 ASP.NET Core MVC 中删除。我该怎么做才能获得相同的结果?
【问题讨论】:
-
和Partial Views不一样吗?
-
@Thangadurai,部分视图在外部文件中定义。在这种情况下,封装和自包含更好。
-
@mohammadrostamisiahgeli 您找到什么解决方案来重用视图内的 HTML 代码?
-
使用旧的@Html.Partial。
标签: razor asp.net-core asp.net-core-mvc