2010-07-06 40 views
3

我只是注意到,我惊讶地发现,在ASP.NET MVC 2(浏览器:Firefox)中,表单参数的开始或结尾处的空白不会被自动删除。是否有任何理由我不应该自动修剪html表单参数?

我总是认为这将是这种情况,只是因为我看不到我不希望修剪发生在默认情况下的场景。

这可以通过执行相应的ActionFilterAttribute很容易修复,但我仍然想知道为什么这不是默认设置。

那么,有没有什么原因,我不应该自动修剪窗体参数?

回答

2

没有根本原因,您不应该自动修剪您的表单参数。毕竟这是你的形式。我已经失去了在数据库条目中发现不必要的空白的次数,特别是在条目开始时。它确实对搜索造成严重破坏,所以我认为总是这样做是一种很好的做法。

另外,我同意SLaks。如果MS自动采取自动行动,人们会哭泣蓝色谋杀。会有这样的帖子:“我的空白为什么会自动修剪?”

编辑:如果您想在ASP.NET管道中尽早完成此修剪,请使用HTTPModule。 这样你就不会再想这件事了,直到你发现自己在想“空白去哪了?” :)

+0

好吧,现在有一个帖子,“为什么不是我的空白修剪”:-)。我的观点是,绝大多数开发人员都使用默认设置。如果它不是默认值,那么MS通常可以很容易地进行必要的更改(而不是像在这种情况下滚动您自己的解决方案)。 – 2010-07-06 16:46:43

+0

是的,我同意你的看法。应该可能有一个配置设置,指定是否应在QueryStrings和Form数据可用前调用Trim()。但是,那就是HttpModules的用处:拦截请求并且弄乱它们。 – 2010-07-06 16:56:15

+0

感谢您的博客链接。我已经使用了http://stackoverflow.com/questions/1718501/asp-net-mvc-best-way-to-trim-strings-after-data-entry-should-i-create-a上列出的解决方法 - 自定义,但http模块看起来像更强大的解决方案,因为它也涵盖了没有强类型输入的操作方法。 – 2010-07-06 22:38:04

3

如果用户真的需要空格。
例如,如果用户在Whitespace programming language中提交了一些代码。

你可以想象一下,如果微软会自动修剪所有输入信息,那么这种咆哮会是怎样的呢?

+0

但肯定这不是常态。以SO为例。没有一个字段可以在这里保留空白。作为选项,可以在一些或全部参数上保留空白。另一方面,如果我不小心修剪所有传入的参数,则空白最终会在数据库中结束,从而导致各种问题(例如新创建的登录名的登录失败,密码,无法传递的电子邮件地址等...) – 2010-07-06 15:43:59

+0

不错。我喜欢Whitespace编程语言参考。非常无用。 :) – 2010-07-06 16:11:06

+0

准确地说我的观点:-) – 2010-07-06 16:27:26

相关问题