1

我有一个非常奇怪的问题。我的应用程序在我的 PC 上运行良好(像往常一样),但是当我将它部署到生产环境时,它会执行以下操作:

  • 当我通过键入http://localpet.cloudapp.net/访问站点时,然后当我从下拉列表中选择旨在加载另一个下拉列表的项目时,值会从第一个下拉列表中清除,就好像它不是回发而是重定向到同一页面或刷新它
  • 当我使用http://localpet.cloudapp.net/Default.aspx访问站点时,一切正常,所有回发功能都按预期进行

您可以自己尝试,访问我的网址并尝试从下拉框中选择动物类型。值被清除。但是,如果您指定页面“Default.aspx”它工作正常。我没有做任何明确的页面重定向。在我的本地 PC 上,我尝试了 Casini 和 IIS,它工作正常。请帮忙

4

1 回答 1

3

看看ASP.NET 4.0的变化。

在 IIS 7 或 IIS 7.5 集成模式下的默认文档中可能不会引发事件处理程序。

ASP.NET 4 现在将 HTML 表单元素的 action 属性值呈现为空字符串,当对映射了默认文档的无扩展名 URL 发出请求时。例如,在 ASP.NET 的早期版本中,对http://contoso.com的请求将导致对 Default.aspx 的请求。在该文档中,开始的表单标记将呈现如下示例:

<form action="Default.aspx" />

在 ASP.NET 4 中,对http://contoso.com的请求也会导致对 Default.aspx 的请求。但是,ASP.NET 现在呈现 HTML 开始表单标记,如下例所示:

 <form action="" />

发布的链接(文章)和 SO 线程中提到的一些解决方法 - Postback 不适用于 aspx 页面作为 Default Document

这是另一种设置动作属性的方法。您必须在 Default.aspx 的 Page_Load 处理程序中编写以下代码。

 HtmlForm form=Master.FindControl("form1") as HtmlForm;
 form.Action = "Default.aspx";
于 2012-06-08T02:50:03.673 回答