问题已解决:问题是它是一个预编译的网页项目,并且要更新页面的外观,需要从源代码重新编译。
在IIS7.5上部署了.Net应用程序,我只能访问* .aspx文件而不是* .cs文件或项目附带的任何其他文件。 * .aspx页面以下面的内容开头(只是一个例子):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="blue.cs" Inherits="p9.cblue" %>
从我读过的所有内容中,我应该能够插入HTML标记,或插入JS,或者遵循How to add html to an aspx C# codebehind page? @stackoverflow
中给出的建议我尝试删除了Inherits,但标记仍然无法在浏览器中呈现。
我试图在aspx页面中的body标签后插入以下JS:
<script type="text/javascript">document.write("TEST");</script>
它没有出现。
我尝试了以上链接中的建议:
<script runat="server">
protected void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack) {
Controls.Add(new LiteralControl("TEST"));
}
}
</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(new LiteralControl("TEST"));
}
}
</script>
这两种方法都不起作用。我确实在尝试之间重启了Web服务器。我甚至在尝试之间回收了应用程序池。我确实重启了浏览器以摆脱缓存问题。没有快乐。
我必须遗漏一些东西。将一些HTML添加到aspx页面是如此困难,这是不可思议的。似乎人们需要经常这样做。
再一次,我无法访问* .cs文件,请不要回复需要编辑* .cs文件的建议。我也意识到我可以使用.Net Reflector将* .cs从DLL中取出并从中重建解决方案。但是,我不应该这样做。我应该能够在* .aspx文件中添加我需要的任何标记,并完成它。
编辑:可能相关或不相关的另一条信息(我不是开发人员,所以我不确定)。应用程序所在的目录包含* .aspx文件。图像所在的文件系统上的目录被拉入应用程序呈现的某些页面中,只包含一个Default.aspx文件,其中包含“这是预编译工具生成的标记文件,不应删除! “
答案 0 :(得分:1)
添加
<script type="text/javascript">
window.onload = function() {
alert("Woot woot!");
};
</script>
到.aspx文件中的head标记的结尾,然后重试。
//编辑:您部署了哪种项目?例如。 Web Setup Project或一键发布?
答案 1 :(得分:1)
我的赌注是在缓存问题上。您的示例代码没有通过,但只要您不将HTML代码放在ASP标记之间(因为它们在提供生成的HTML之前由IIS解析),它应该如您所描述的那样显示。
您可以通过从服务器上的命令行运行iisreset.exe来清除IIS缓存
您可以在本地清除浏览器缓存,例如使用Ctrl-F5组合键
答案 2 :(得分:0)
就像多个人在评论中指出的那样,这是一个预编译的Web应用程序,因此可以重建。
将来,或者对于查看此页面的其他人来说,可以通过将解决方案构建为网页并确保在“发布网站”步骤中“允许此预编译站点可更新”复选框来避免此问题。选择。这将允许您以后更改标记和客户端代码,而无需重新编译站点。