2011-08-16 35 views
2

我需要修剪所有由用戶通過Web窗體提交的HTTP POST數據。在完成Google搜索之後,顯然在asp.net中沒有內置功能來修剪所有HTTP POST數據。asp.net MVC3:修剪所有HTTP POST數據

我可以得到的是什麼,這裏描述的最接近:ASP.NET MVC: Best way to trim strings after data entry. Should I create a custom model binder?

遺憾的是它並沒有對嵌套的ViewModels工作(視圖模型與其他類型的視圖模型屬性)。

達到此目的的最佳方法是什麼?我不想在所有ViewModel的每個屬性上做property.Trim()。謝謝。

+0

自定義模型聯編程序是要走的路。爲什麼它不適用於嵌套視圖模型?你應該能夠實現這一點。 – Yuck

+0

再次查看代碼,我發現一些值直接從Request.Form中獲得...這就是爲什麼它對某些屬性無效。我會認爲這個問題的答案。 – user895852

回答

1

一種選擇是定義自己的IValueProvider。我會從NameValueCollectionValueProvider開始繼續創建一個TrimmedNameValueCollectionValueProvider,其中您在將它們拉出時修剪結果。然後,您將定義一個TrimmedFormValueProvider,通過controllerContext.HttpContext.Request.Form作爲collection