我可以访问带有aspx页面的服务器。我需要在页面上添加标题,parapgraph等。该页面目前只有以下行:
<%@ Page Language="C#" AutoEventWireup="true" Inherits="Access.Login" %>
我无法访问CS文件,只能访问DLL。无论如何,当我尝试将任何html添加到文档时没有任何变化。我能够更改CSS,如果我删除“继承”,那么我显示的任何HTML都会显示,但是当“继承”时,只显示默认页面,而不是我的添加内容。
不可否认,我是ASP的新手,而且我并不想成为一名专家,只是为了向页面添加一些HTML,但任何建议都会很棒,谢谢!
答案 0 :(得分:0)
尝试将Page_Load嵌入.aspx并以这种方式添加控件:
<%@ Page Language="C#" AutoEventWireup="true" Inherits="Access.Login" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack) {
Controls.Add(whatever);
}
}
</script>
<!-- Try this if the above does not work -->
<script runat="server">
new protected void Page_Load(object sender, EventArgs e) {
base.Page_Load(sender, e);
if (!Page.IsPostBack) {
Controls.Add(whatever);
}
}
</script>
答案 1 :(得分:0)
从根本上说,我担心这是不可能的。 .NET是一种单继承语言/框架。因此,当它表示Inherits =“Access.Login”时,这意味着您只能使用Access.Login或您的代码隐藏,但不能同时使用它们。
那就是说,你可以通过一些疯狂的箍来实现你的目标。就像创建一个全新的“包装器”页面一样,然后在代码隐藏中将一个http请求发送到你想要的页面。加载响应,这只是一个非常长的字符串到第三方DOM解析器,或者如果你确信你得到100%有效的XML,使用.NET的内置XmlDocument或XDocument来解析页面,找到您的html元素,进行更改,然后使用修改后的内容进行Response.Write。
这是一个现实生活中的例子,绕着你的肘部去找你...
答案 2 :(得分:0)
我不是100%肯定这会起作用,但是您可以从Access.Login继承代码隐藏文件,并使用Page_Load使用new(覆盖将无效,如果Page_Load未标记为虚拟)关键字。然后你可以使用Inherits =“YourAssembly.NewLogin”。
我不确定的部分是asp.net是否使用页面类或子类来调用Page_Load方法。如果page_Load是虚拟的,那么无关紧要,但由于它不是新的,只有在将页面强制转换为子类时才会调用new。值得一试。