我有以下功能,我想在我的asp.net网页2应用程序中使用几个.cshtml视图。如何使该功能可用于应用程序中的任何视图(而不仅仅是一个)。
@functions {
public bool DisplayButton(String startDate, String endDate)
{
return Convert.ToDateTime(startDate) < DateTime.Now && Convert.ToDateTime(endDate) > DateTime.Now;
}
}
答案 0 :(得分:23)
在App_Code中创建一个名为Functions.cshtml的文件,然后将您拥有的代码粘贴到文件中。然后,您可以在任何.cshtml文件中调用DisplayButton方法,方法是在文件名前加上:
var myBool = Functions.DisplayButton(DateTime.Now, DateTime.Now.AddDays(30));
有关在ASP.NET网页中使用函数和帮助程序的更多信息,请阅读:http://www.mikesdotnetting.com/Article/173/The-Difference-Between-@Helpers-and-@Functions-In-WebMatrix
答案 1 :(得分:2)
您可以在AppCode目录的Razor文件中定义“全局”辅助函数,如下所述:http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx。但是,助手只渲染页面元素;它们不能返回值(或者更准确地说,返回的值是要呈现的HTML标记)。
如果您需要返回一个值,最好的选择是扩展方法。
答案 2 :(得分:1)
不明白为什么你没有静态方法的静态类,只是将它包含在每个视图的顶部,然后使用它