【问题标题】:How does asp.net 4.0 set form action on web forms. puzzling resultsasp.net 4.0 如何在 Web 表单上设置表单操作。令人费解的结果
【发布时间】:2014-04-16 00:06:46
【问题描述】:

有谁知道asp.net 4.0 是如何设置web 表单的action 属性的值的。当url在页面名称后包含“/”时,我遇到了action属性没有正确值的情况。

例如取url localhost/test/Default.aspx

页面加载后,在浏览器中查看页面源时,action属性看起来像action="Default.aspx",这是意料之中的。

现在,使用相同的 url,但在页面名称和一些文本之后添加 /,例如 localhost/test/Default.aspx/www.xyz.com

页面加载后,在浏览器中查看页面源时,action 属性类似于 action="www.xyz.com"。如您所见,action 属性的值是 / 之后输入的值。

有人遇到过这种情况吗?这只发生在 asp.net 4.0 应用程序中。在 asp.net 2.0 应用程序上进行相同测试时,action 属性始终为 Default.aspx

我无法找到对此行为的解释,以及可以采取哪些措施来消除它。

谢谢

【问题讨论】:

    标签: .net webforms asp.net-4.0


    【解决方案1】:

    似乎是 ASP.NET 的默认行为。

    查看 HtmlForm 类的 GetActionAttribute() 代码(通过反编译工具),它获取最后一个 / 之后存在的任何内容,并将其设置为操作属性的值。

    覆盖它的一种方法是将表单的 RenderingCompatibility 设置为:

    this.form1.RenderingCompatibility = new Version(4, 5);

    当它看到这个时,它会将action属性设置为./

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-06
      • 2011-07-18
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多