将常见的剃刀辅助对象移动到另一个文件中
本文关键字:移动 另一个 文件 对象 常见 剃刀 | 更新日期: 2023-09-27 18:26:34
我有一个MVC4 web应用程序,我目前有一些@helper
,我在cshtml中定义的多个页面上使用。问题是,我必须在使用它们的每一页上定义它们。是否可以创建一个包含我的所有@helper
的.cshtml
文件,并将该页面包含在我的视图中?
即,这用于cms区域中的每个Index视图。
@helper DisplayPager(Int32 CurrentPage, Int32 MaxPages) {
String IsActive = "";
<div class="pagination pagination-centered">
<ul>
<li><a href="@Url.Action("Index", new { id = CurrentPage - 1 > 0 ? CurrentPage - 1 : 1 })">Prev</a></li>
@for (int i = 0; i < MaxPages; i++)
{
IsActive = ((i + 1) == CurrentPage) ? "active" : "";
<li class="@(IsActive)"><a href="@Url.Action("Index", new { id = i + 1 })">@(i + 1)</a></li>
}
<li><a href="@Url.Action("Index", new { id = CurrentPage + 1 < MaxPages ? CurrentPage + 1 : MaxPages })">Next</a></li>
</ul>
</div>
}
同样的定义,同样的代码,同样的一切,但它现在至少在代码中出现了15次。
以下是实现的说明
此过程将向您展示如何创建创建注释的辅助对象,如前所述。这是一个简单的示例,但是自定义帮助程序可以包括您需要的任何标记和ASP.NET代码。
-
在网站的根文件夹中,创建一个名为App_Code的文件夹。这是ASP.NET中的一个保留文件夹名称,您可以在其中放置助手等组件的代码。
-
在App_Code文件夹中创建一个新的.cs.html文件,并将其命名为MyHelpers.cshtml.
-
将现有内容替换为以下内容:
@helper MakeNote(string content) { <div class="note" style="border: 1px solid black; width: 90%; padding: 5px; margin-left: 15px;"> <p> <strong>Note</strong> @content </p> </div> }
该代码使用@helper语法来声明一个名为MakeNote的新助手。这个特定的帮助程序允许您传递一个名为content的参数,该参数可以包含文本和标记的组合。助手使用@content变量将字符串插入到注释正文中。
请注意,该文件名为MyHelpers.cshtml,但辅助对象名为MakeNote。您可以将多个自定义辅助对象放入一个文件中。
-
保存并关闭文件。
复制自本文