奇怪的是查询字符串在实时服务器上消失了
Strangely Query String is disappeared on live server
也许这是一种非常正常的行为,或者我遗漏了一些非常基本的东西。我有一个名为 Default.aspx 的页面,它被设置为我的 Web 应用程序的默认页面。在此页面上有一个类别的下拉列表,当我 select 任何值时,将为同一页面调用 response.redirect,并将类别 ID 作为查询字符串传递。现在,当我在本地测试应用程序时,一切正常。当我在服务器上发布网站并使用 url www.mywebsite.com 调用网站时,显示默认页面但不显示页面名称。我对此没有问题,但没有页面名称,我的 response.redirect 停止工作。因此,只需在以下几行中总结所有这些,
www.mysite.com
// On Selected Index Changed
Response.Redirect("~/Default.aspx?catId="+ ddlCategory.SelectedItem.Value);
Url 应该是第一个类别
www.mysite.com/Default.aspx?catId=1
但它没有改变,并且在回发时显示 www.mysite.com。
但是如果我在地址栏中有,
www.mysite.com/Default.aspx
现在,如果我更改下拉列表的 selected 索引,那么它工作正常并且 url 变为,
www.mysite.com/Default.aspx?catId=1
现在我不知道这个问题是否已经有人问过,因为我什至不知道问题是什么,我应该搜索什么。
更新:
现在这也在本地系统中复制。似乎当地址栏中不存在页面名称 Default.aspx 和 url 时,不会调用 SelectedIndexChanged。如果 Default.aspx 在地址栏中,则触发 SelectedIndexChanged。
好吧,我仍然无法找到我在问题中提到的行为的确切原因,但我已经应用了解决方法。我现在不从后面的代码调用 SelectedIndexChange 事件,而是使用 Javascript 重定向到具有查询字符串的同一页面。
<script type="text/javascript">
function CategoryChanged() {
var ddlReport = document.getElementById("<%=ddlCategory.ClientID%>");
window.location = 'Default.aspx?catId=' + ddlCategory.value;
}
</script>
并在更改我的下拉列表时调用了它,
onchange="CategoryChanged()"
除此解决方案外,我还想知道为什么 url 中未提及页面名称时未调用代码隐藏事件。因此,如果有人有任何想法,请分享他们的想法。
也许这是一种非常正常的行为,或者我遗漏了一些非常基本的东西。我有一个名为 Default.aspx 的页面,它被设置为我的 Web 应用程序的默认页面。在此页面上有一个类别的下拉列表,当我 select 任何值时,将为同一页面调用 response.redirect,并将类别 ID 作为查询字符串传递。现在,当我在本地测试应用程序时,一切正常。当我在服务器上发布网站并使用 url www.mywebsite.com 调用网站时,显示默认页面但不显示页面名称。我对此没有问题,但没有页面名称,我的 response.redirect 停止工作。因此,只需在以下几行中总结所有这些,
www.mysite.com
// On Selected Index Changed
Response.Redirect("~/Default.aspx?catId="+ ddlCategory.SelectedItem.Value);
Url 应该是第一个类别
www.mysite.com/Default.aspx?catId=1
但它没有改变,并且在回发时显示 www.mysite.com。
但是如果我在地址栏中有,
www.mysite.com/Default.aspx
现在,如果我更改下拉列表的 selected 索引,那么它工作正常并且 url 变为,
www.mysite.com/Default.aspx?catId=1
现在我不知道这个问题是否已经有人问过,因为我什至不知道问题是什么,我应该搜索什么。
更新: 现在这也在本地系统中复制。似乎当地址栏中不存在页面名称 Default.aspx 和 url 时,不会调用 SelectedIndexChanged。如果 Default.aspx 在地址栏中,则触发 SelectedIndexChanged。
好吧,我仍然无法找到我在问题中提到的行为的确切原因,但我已经应用了解决方法。我现在不从后面的代码调用 SelectedIndexChange 事件,而是使用 Javascript 重定向到具有查询字符串的同一页面。
<script type="text/javascript">
function CategoryChanged() {
var ddlReport = document.getElementById("<%=ddlCategory.ClientID%>");
window.location = 'Default.aspx?catId=' + ddlCategory.value;
}
</script>
并在更改我的下拉列表时调用了它,
onchange="CategoryChanged()"
除此解决方案外,我还想知道为什么 url 中未提及页面名称时未调用代码隐藏事件。因此,如果有人有任何想法,请分享他们的想法。