Asp.net 在何处放置格式函数

Asp.net 在何处放置格式函数,asp.net,asp.net-mvc,dapper,n-tier-architecture,Asp.net,Asp.net Mvc,Dapper,N Tier Architecture,我正在构建我的第一个n层应用程序 第一层是ASP.net网站 第二层是业务层 第三个是数据层,具有简洁性 第二层和第三层用于不同的网站 当我有税务选项的数字字段时。 1=高BTW,2=低BTW,3=无BTW 在business Artikel类中创建翻译函数是一个好的设计吗? 如果答案是否定的,那么哪里是转换值的正确位置。 我在视图中使用此函数来显示文本而不是数字 例如: Public Function ArtBtwShow() As String Return ArtikelHel

我正在构建我的第一个n层应用程序

  • 第一层是ASP.net网站
  • 第二层是业务层
  • 第三个是数据层,具有简洁性
第二层和第三层用于不同的网站

当我有税务选项的数字字段时。 1=高BTW,2=低BTW,3=无BTW 在business 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

我不确定您到底想做什么,但看起来您需要为您的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

您可以在业务逻辑中使用枚举而不是在字符串之间转换吗?或者如果
BTW
表示一个业务模型,那么将其作为强类型业务对象?听起来像是在传递一些“魔法值”,需要手动将它们从一个“魔法值”转换为另一个“魔法值”。答案不是将转换放在哪里,而是首先不要使用它们。我可以将ArtBtw的类型更改为可枚举的。但是如何设置可枚举项的显示值呢?它应该是可枚举的吗?这实际上是建模的结构问题。如果它是一个
可枚举的
,那么您可以通过从集合中选择一个元素并显示它来显示该元素。现在还不清楚问题出在哪里,谢谢。我尝试将字符串更改为枚举。MVC中的DisplayFor函数显示字符串名称