asp.net - pages - Usar una función de Razor en varias páginas web(archivos.cshtml)
html con asp net (3)
Cree un archivo llamado Functions.cshtml en App_Code y luego pegue el código que tiene en el archivo. Luego puedes llamar al método DisplayButton en cualquier archivo .cshtml prefijándolo con el nombre del archivo:
var myBool = Functions.DisplayButton(DateTime.Now, DateTime.Now.AddDays(30));
Para obtener más información sobre el trabajo con funciones y ayudantes en las páginas web ASP.NET, lea esto: http://www.mikesdotnetting.com/Article/173/The-Difference-Between-@Helpers-and-@Functions-In-WebMatrix
Tengo la siguiente función que me gustaría tener disponible para varias vistas .cshtml en mi aplicación de páginas web asp.net 2. ¿Cómo puedo hacer que esta función esté disponible para cualquier vista en la aplicación (en lugar de solo una)?
@functions {
public bool DisplayButton(String startDate, String endDate)
{
return Convert.ToDateTime(startDate) < DateTime.Now && Convert.ToDateTime(endDate) > DateTime.Now;
}
}
No vea por qué no podría tener una clase estática con un método estático, simplemente inclúyalo en la parte superior de cada vista y luego utilícelo.
Puede definir funciones de ayuda "globales" en un archivo Razor en el directorio AppCode como se describe aquí: http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx . Sin embargo, los ayudantes solo representan elementos de la página; no pueden devolver un valor (o más correctamente, el valor devuelto es el formato HTML que se va a representar).
Si necesita devolver un valor, su mejor apuesta es un método de extensión.