2010-07-06 20 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

相關問題