加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在主页中使用url时,asp下拉列表回发在更新面板中不起作用

发布时间:2020-12-15 07:59:50 所属栏目:百科 来源:网络整理
导读:我正在使用, base href =“http:// localhost:80 /”在我的母网页面中, 现在,当我在更新面板中的内容页面(位于localhost:80 / directory1 / directory2)上使用dropdownlist控件时,selectedindexchanged事件无效. 我试图搞清楚,但在firefox控制台的网络选
我正在使用,< base href =“http:// localhost:80 /”>在我的母网页面中,

现在,当我在更新面板中的内容页面(位于localhost:80 / directory1 / directory2)上使用dropdownlist控件时,selectedindexchanged事件无效.

我试图搞清楚,但在firefox控制台的网络选项卡中,我发现请求只是在basehost:80 / contenpage.aspx而不是localhost:80 / directory1 / directory2 / contenpage.aspx中查找基本URL的内容页面给出错误

The resource cannot be found.

解决方法

相关情况是默认情况下,表单操作在ASP.NET中设置为相对URL:
<form id="ctl01" action="./webform1" method="post">
    <!-- ... -->
</form>

如果使用基本标记,则更改页面用于解释相对URL的基本路径.在您的情况下,基本URL指向显然无法提供应用程序页面的路径.为了解决这个问题,我会重新考虑是否需要基本标签.如果是,则应指向能够为应用程序页面提供服务的URL.要动态设置应用程序基本路径的基本路径,可以使用以下代码:

protected void Page_Load(object sender,EventArgs e)
{
    baseCtrl.Attributes["href"] = new Uri(Request.Url,"/").OriginalString;
}

作为一种解决方法,如果您需要保持基本标记不变,我还尝试通过将以下代码集成到母版页中来将表单操作设置为绝对URL:

protected void Page_Load(object sender,EventArgs e)
{
    Page.Form.Action = Request.Url.OriginalString;
}

这适用于我的小样本,以便页面可以成功执行PostBack.虽然表单被发布回到相同的位置,就好像没有基本标记一样,但可能会有一些副作用,因为页面上的其他资源(例如CSS,JavaScript文件等)也可能会被相对URL引用因此可以从另一个位置检索.因此,我仍然建议在使用此解决方案之前重新评估基本标记.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读