我有一个奇怪的回发问题,它重定向而不是回发

时间:2012-06-08 02:44:07

标签: c# asp.net azure asp.net-ajax postback

我有一个非常奇怪的问题。我的appplicaiton在我的电脑上工作正常(像往常一样),但是当我将它部署到生产中时,它会执行以下操作:

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

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

1 个答案:

答案 0 :(得分: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的请求也会导致a   请求Default.aspx。但是,ASP.NET现在呈现HTML开头   form标签,如下例所示:

 <form action="" />

在发布的链接(文章)和SO帖子中提到了一些解决方法 - Postback doesn't work with aspx page as Default Document

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

 HtmlForm form=Master.FindControl("form1") as HtmlForm;
 form.Action = "Default.aspx";