Tengo dos funciones y me aparece un problema interesante. Básicamente, mi objetivo es hacer que mi código sea más portátil en un archivo cs fácil de incluir.Se necesita una referencia de objeto para el campo, método o propiedad no estático 'System.Web.UI.Page.Server.get'
Aquí está dicho archivo cs:
namespace basicFunctions {
public partial class phpPort : System.Web.UI.Page {
public static string includer(string filename) {
string path = Server.MapPath("./" + filename);
string content = System.IO.File.ReadAllText(path);
return content;
}
public void returnError() {
Response.Write("<h2>An error has occurred!</h2>");
Response.Write("<p>You have followed an incorrect link. Please double check and try again.</p>");
Response.Write(includer("footer.html"));
Response.End();
}
}
}
Esta es la página que se está refiriendo a que:
<% @Page Language="C#" Debug="true" Inherits="basicFunctions.phpPort" CodeFile="basicfunctions.cs" %>
<% @Import Namespace="System.Web.Configuration" %>
<script language="C#" runat="server">
void Page_Load(object sender,EventArgs e) {
Response.Write(includer("header.html"));
//irrelevant code
if ('stuff happens') {
returnError();
}
Response.Write(includer("footer.html"));
}
</script>
El error que estoy recibiendo es la que aparece más arriba, a saber:
Mensaje de error del compilador: CS0120: Se requiere una referencia de objeto para el campo, método o propiedad no estático 'System.Web.UI.Page.Server.get'
En la línea siguiente:
Línea 5: cadena de ruta = Server.MapPath ("./" + filename);
Recomiendo encarecidamente que no repita los errores de php. En su lugar, busque cómo funcionan las páginas maestras o simplemente muévase a MVC. – NotMe
No todos vemos el estilo de codificación de PHP como errores. Para aquellos de nosotros con un fondo de codificación más tradicional que nos brinda más controles de bajo nivel y flexibilidad de codificación a expensas de la velocidad de producción (aunque no del tiempo de ejecución) o de un gran foco de objetos, realmente se siente un poco más en casa. Además, la documentación es mejor = P. Además, me parece que cuanto más profundo se adentra en el agujero de conejo de ASP.NET, peor es el resultado de su HTML y JavaScript (ya que comienza a generar mucho). XHTML, JSLint, etc. es importante para mí, por lo que prefiero mantener la mayor cantidad de código posible para mí. –
Supongo que no hay nada de malo con la forma oficial de sanción de Microsoft. Sin embargo, decir que es intrínsecamente mejor porque es lo que la gente te dice que hagas es un poco falso ya que a menudo crea código con una huella de memoria más grande, más lugares para agujeros de seguridad de error común y muchas, muchas más líneas de código. Por supuesto, por otro lado, también es mejor en muchos sentidos para grandes lugares de trabajo de producción con muchos programadores individuales trabajando juntos. Diferentes estilos de codificación, eso es todo. Sin embargo, siempre estaré en el campamento de PHP, me temo. –