2008-10-17 25 views
2

考慮一個標準的ASP.NET Web應用程序,用戶在表單上輸入一些數字數據。在提交時,一些業務對象被啓用以處理數字數據。但.Net中的服務器端文本框控件返回字符串類型的值。問題:頁面的代碼隱藏是否負責將字符串解析爲數字數據(並且如果無效則拋出錯誤),還是業務對象應該接受字符串以進行輸入並自行解析它們?.NET中字符串解析的適當層是什麼?

回答

3

IMO,業務對象應該只接受數字類型。根據文化特定的規則,字符串可以以各種格式進行分析。數字是數字。您不想更改您的業務對象進行本地化 - 只接受數字將使重複使用更容易。

+0

我同意,讓用戶輸入正確的數據。 – nportelli 2008-10-17 13:58:18

0

業務對象只應該被正確解析&驗證的對象。

現在,這個解析&驗證應該在代碼隱藏中完成嗎?很難說,因爲代碼隱藏真的不是一層。正確地說,代碼隱藏應該只是處理UI問題,並且解析應該在UI &業務之間的控制器層完成。但是,大多數人只是將控制器粘貼到代碼隱藏中。

1

一般而言,您希望您的業務邏輯接受與之配合的類型,其方式更清晰。在進入業務邏輯之前格式化傳入數據並進行驗證是一種很好的做法,因爲您並未實際處理數據,而是預先格式化數據以供業務層使用。這在輸入驗證失敗時特別有用,你不需要一步一步地將其返回給用戶。