【问题标题】:Why ASPX page gets malformed when user enter "//" after page url为什么当用户在页面 url 后输入“//”时 ASPX 页面格式错误
【发布时间】:2013-06-02 16:21:45
【问题描述】:

我有一个带有母版页的简单 ASPX。这是您使用时创建的标准页面

visual studio express 2012>>新建网站(文件系统)>>ASP.NET表单网站(选择master)>>

IDE 创建它的方式很新鲜。当我查看“Default.aspx”页面时,它在浏览器上正常显示。

即使我输入“localhost:xxxxx/Default.Aspx/”,它也会正常显示。

但是如果我输入“localhost:xxxxx/Default.Aspx//”它的格式不正确。

如果网址中带有多个“/”后缀,谁能解释为什么页面格式错误? 有没有什么办法可以防止畸形页面?

【问题讨论】:

  • 当然。不要使用//
  • 坦率地说,如果用户乱搞一个 URL,他们不会对得到 404 感到惊讶。
  • “格式错误”是什么意思?那是相当广泛的,不是一个恰当的描述。
  • 即使是/ 也会使文件看起来像目录。所以这就是你的理由。此外,您可能使用的任何重写模块都可能与两个// 混淆。您的消息可能是找不到页面...如果您搜索以更正用户输入,从找不到页面中获取 url,进行一些分析并建议他一些替代方案。
  • 请使用Fiddler,您会看到,CSS 文件没有正确加载。您应该在 css 路径中使用绝对 URL。

标签: asp.net


【解决方案1】:

当你像这样路由一个 url 时:

localhost:xxxxx/Default.Aspx//

实际上你将这些地址路由到四个获取资源(如图像文件、css文件等)

localhost:xxxxx/Default.Aspx//Resources/Scripts/jqueyr.js
localhost:xxxxx/Default.Aspx//Resources/Images/pic1.jpg
localhost:xxxxx/Default.Aspx//Resources/styles/mystyle.css

当然这些地址对于路由你的资源是错误的,所以浏览器无法获取页面资源,只能获取没有依赖关系的 Default.aspx 文件。(你可以用 fiddler 或 IE> F12 >network> url栏 )

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2010-11-03
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多