【发布时间】:2012-05-09 13:40:51
【问题描述】:
我遇到了 URL 重写和回发问题。
编辑:目前使用 IIS 7 和 URL 重写模块。
基本上在回发之后,我的 URL 重写完全搞砸了,并在我的查询字符串中添加了一些重复的和不必要的字段值对。考虑到我在代码中解析 URL,这会在引发回发后破坏已经工作的页面。
据我所见,在我之前很多人都遇到过同样的问题,而且几乎所有人都通过修改 PageLoad 上的 Form Action 来解决这个问题,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
form1.Action = Request.RawUrl;
//Some other interesting things.
}
重要提示:成功了,它有效。
然而,尽管我的开发经验实际上还不到一个月,但到目前为止,我一直在努力寻找更优雅的解决方案来解决我的问题。我被暗示可能有一个更好的选择,即编辑 Global.asax 以便在更“全局”的级别上获得相同的结果。 p>
在我看来,这应该会提高整体效率,因为该技巧将在调用任何其他页面之前完成。
所以我的实际问题是:
如何通过编辑 Global.asax 文件而不是修改 MasterPage 加载事件上的表单操作来实现相同的目的?如果您有更优雅的解决方案,我将不胜感激。
考虑到这是我的第一个问题,我希望我已经足够有建设性了。
【问题讨论】:
-
您使用的是什么版本的 .NET?在 3.5 及更高版本中,您可以使用 MVC 的路由引擎,它更加优雅msdn.microsoft.com/en-us/magazine/dd347546.aspx
-
+1 用于路由。如果您完全关心您的网址,您似乎在解析它们后就这样做了,您需要路由。
-
目前我正在使用 IIS 7 和 URL 重写。据我了解,路由是一个不同的概念,当然也不是一个简单的概念,尤其是对于初学者而言。到目前为止,我的简单 URL 重写工作完美无缺,我想一次学习一件事。我现在只是想以不同的方式实施回发修复。
-
感谢@Kevin 和 bzlm 的输入。感谢您的建议,当我有空闲时间研究其他技术时,我会记住它。我为这篇文章添加了书签,我将查看您提到的 MVC 路由引擎。
标签: c# asp.net url-rewriting postback