【问题标题】:asp.net adds # end of the url after postbackasp.net 在回发后添加 # url 结尾
【发布时间】:2023-03-08 06:32:01
【问题描述】:

我有一个简单的网络表单,并且有一个按钮。 单击按钮后,它会自动在 url 末尾添加“#”。

假设网址是: http://www.domain.com/test.aspx

回发后它变为 http://www.domain.com/test.aspx#

我正在使用 UrlRewriter.NET 的 url 重写模块,可能与此有关。

但在回发之前,表单标签如下:

<form method="post" action="#"

感谢您的任何想法。

编辑:我正在使用母版页,因此无法手动删除操作标记。

【问题讨论】:

  • 所以删除action="#" ?
  • 而且您的action 属性中有标签这一事实并没有给您提示?
  • 我正在使用母版页,因此无法轻松删除操作标签。
  • 显示您用于在母版页中生成表单标记的代码。我从未见过在母版页生成的表单中添加哈希
  • 谢谢 Anthony 表单上有一个 Action="#" 标签,但是删除它会导致几个 url 重写问题,我会尝试找出背后发生了什么

标签: asp.net


【解决方案1】:

只需删除 action 属性。然后表单将自动发布到当前页面。此场景不需要 Url-rewrite 模块。

编辑

由于母版页无法删除它,因此您可以使用 javascript 快速而肮脏地删除该属性。如果您使用的是 jQuery,则可以使用此代码的变体:

$('form').removeAttr('action')

【讨论】:

  • 由于母版页自动添加
【解决方案2】:

我找到了解决方案。 对于 url 重写模块工作正常,应在母版页上设置表单操作属性。 并且 Url 重写模块更改了操作标记,我不知道为什么,而是在操作标记的末尾添加了 # 字符。

我在母版页上使用 javascript 将其删除。

<script type='text/javascript'>
    function OnLoaded() {
        //alert(document.forms[0].action);
        var s = document.forms[0].action;
        if (s.length >= 1 && s[s.length - 1] == '#') {
            document.forms[0].action = s.substr(0, s.length - 1);
            //alert(document.forms[0].action);
        }
    }
</script>
</head>
<body onload="OnLoaded();">

希望能帮助遇到同样问题的人。

【讨论】:

    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 2017-06-15
    • 2014-02-03
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多