我有一个非常奇怪的问题。我的appplicaiton在我的电脑上工作正常(像往常一样),但是当我将它部署到生产中时,它会执行以下操作:
您可以自己尝试,到我的网址并尝试从下拉框中选择动物类型。价值被清除。但是,如果您指定页面“Default.aspx”,它可以正常工作。我没有做任何明确的页面重定向。在我的本地PC上我尝试了Casini和IIS,它运行正常。请帮忙
答案 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";