我有一个 MVC4 Web 应用程序,目前有一些@helper
是我在多个页面上使用的,在 cshtml 中定义。问题是,我必须在使用它们的每个页面上定义它们。是否有可能创建一个.cshtml
包含我所有的文件@helper
并将该页面包含到我的视图中?
即,这用于 cms 区域中的每个索引视图。
@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 文件夹中创建一个新的 .cshtml 文件并将其命名为 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。您可以将多个自定义助手放入一个文件中。
保存并关闭文件。
从这里复制过来的article http://www.asp.net/web-pages/tutorials/working-with-pages/creating-and-using-a-helper-in-an-aspnet-web-pages-site
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)