2014-09-30 31 views
0

我正在構建我的第一個n層應用程序。何處放置格式函數

  • 第一層是一個ASP.net網站。
  • 第二個是業務層。
  • 第三是數據層與精簡。

第二層和第三層用於不同的網站。

當我有一個數字字段的稅收選項。 1 =高BTW和2 =低btw和3 =沒有btw 在業務Artikel類中翻譯功能是否是一個好設計? 如果答案是否定的,那麼翻譯值的正確位置在哪裏。 我在視圖中使用這個函數來顯示文本而不是數字。

例子:

Public Function ArtBtwShow() As String 
    Return ArtikelHelper.GetBtwName(ArtBtw) 
End Function 

GetBtwName輔助功能:

Shared Function GetBtwName(Btw As String) 
    Select Case Btw 
     Case "0" 
      Return "Geen" 
     Case "1" 
      Return "Laag" 
     Case "2" 
      Return "Hoog" 

     Case Else 
      Return "" 
    End Select 
End Function 
+0

你能在業務邏輯中使用枚舉不是字符串之間進行轉換的?或者,如果「BTW」表示業務模型,那麼將其作爲強類型的業務對象?這聽起來像是你傳遞了一些「魔法值」,你需要手動將其從一個「魔法值」轉換爲另一個「魔法值」。答案並不在於轉換的位置,答案是首先不要使用它們。 – David 2014-09-30 14:38:14

+0

我可以將ArtBtw的類型更改爲Enumarable。但是,我如何設置一個可感知項目的顯示值呢? – 2014-09-30 14:43:57

+0

*它應該是一個'Enumerable'嗎?這對於你的建模是如何構建的真的很重要。如果它是一個'Enumerable ',那麼你可以通過從集合中選擇該元素來顯示一個元素,以及顯示它。真的不清楚問題是什麼。 – David 2014-09-30 14:45:12

回答

2

我不知道你想要做什麼,但它看起來像你需要使用一個枚舉,而不是一個字符串爲你的Btw對象:

Public Enum Btw 
    Green = 0 
    Laag = 1 
    Hoog = 2 
End Enum 

我認爲業務層是放置這個地方。

然後您檢索能解密像這樣:

Public Funtion GetName(btw As Btw) 
    return [Enum].GetName(GetType(Btw), (int)btw) 
End Function 
+0

謝謝。我嘗試將字符串更改爲Enum。 – 2014-09-30 14:52:33

+0

MVC中的DisplayFor函數顯示字符串名稱 – 2014-09-30 15:05:12