将常见的razor助手移动到另一个文件
我有一个MVC4网络应用程序,我目前有几个@helper
的我在多个页面上使用,在cshtml中定义。 问题是,我必须在他们使用的每个页面上定义它们。 是否可以创建一个包含我所有@helper
的.cshtml
文件,并将该页面包含在我的视图中?
即,这用于cms区域中的每个Index视图。
@helper DisplayPager(Int32 CurrentPage, Int32 MaxPages) { String IsActive = ""; - 0 ? CurrentPage - 1 : 1 })">Prev
@for (int i = 0; i < MaxPages; i++) { IsActive = ((i + 1) == CurrentPage) ? "active" : ""; - @(i + 1)
} - <a href="https://stackoverflow.com/questions/18085263/move-common-razor-helpers-to-another-file/@Url.Action("Index", new { id = CurrentPage + 1 Next
}
相同的定义,相同的代码,相同的一切,但它现在在代码中至少15次。
以下是实现这一目标的说明
此过程向您展示如何创建创建注释的帮助程序,如上所述。 这是一个简单的示例,但自定义帮助程序可以包含您需要的任何标记和ASP.NET代码。
-
在网站的根文件夹中,创建名为App_Code的文件夹。 这是ASP.NET中的保留文件夹名称,您可以在其中放置帮助程序等组件的代码。
-
在App_Code文件夹中,创建一个新的.cshtml文件,并将其命名为MyHelpers.cshtml。
-
用以下内容替换现有内容:
@helper MakeNote(string content) {
Note @content
该代码使用@helper语法来声明一个名为MakeNote的新助手。 此特定帮助程序允许您传递名为content的参数,该参数可以包含文本和标记的组合。 助手使用@content变量将字符串插入到音符主体中。
请注意,该文件名为MyHelpers.cshtml,但帮助程序名为MakeNote。 您可以将多个自定义帮助程序放入单个文件中。
-
保存并关闭文件。
从这篇文章中复制了它