Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模型中的Display属性是否违反了关注点与视图和模型的分离_C#_.net_Asp.net Mvc_Asp.net Mvc 3_Model View Controller - Fatal编程技术网

C# 模型中的Display属性是否违反了关注点与视图和模型的分离

C# 模型中的Display属性是否违反了关注点与视图和模型的分离,c#,.net,asp.net-mvc,asp.net-mvc-3,model-view-controller,C#,.net,Asp.net Mvc,Asp.net Mvc 3,Model View Controller,可能是个愚蠢的问题。 但是,使用Display属性在模型中指定标题是否违反了关注点分离原则?标题不应该在视图中吗 如果没有,有人能解释一下为什么它属于这个模型吗 否,如果它是您的视图模型,则不会违反模式 ViewModel通常是一个简单的POCO(普通的旧CLR对象),它 不包含业务逻辑,大部分仅包含属性 @Html.DisplayFor(x=>x.MyProperty)方法将查找Display属性 并利用这些信息。因此,正确的方法是使用属性,而不是视图中的任何硬编码文本 希望这有帮助MVC框架

可能是个愚蠢的问题。 但是,使用Display属性在模型中指定标题是否违反了关注点分离原则?标题不应该在视图中吗


如果没有,有人能解释一下为什么它属于这个模型吗

否,如果它是您的视图模型,则不会违反模式

ViewModel通常是一个简单的POCO(普通的旧CLR对象),它 不包含业务逻辑,大部分仅包含属性

@Html.DisplayFor(x=>x.MyProperty)
方法将查找Display属性 并利用这些信息。因此,正确的方法是使用属性,而不是视图中的任何硬编码文本


希望这有帮助

MVC框架允许您将
数据注释
放在模型中,但是严格来说,数据注释应该放在ViewModel中,而不是放在映射到数据库的模型中。

将域模型从视图中分离出来与域模型贫血之间有一条细微的界限(http://en.wikipedia.org/wiki/Anemic_domain_model). 我个人认为,在视图模型的某些地方公开域模型作为属性是可以的


我个人对一个贫乏的域模型的不满是,它“促进了事务脚本和类似用例之间的代码复制,减少了代码重用。”

一个解释会很好。同意,我大部分时间都是这样做的。+1-数据注释应该放在什么地方(viewModel)