gpt4 book ai didi

.net - ASP.NET MVC : How dumb should my view be?

转载 作者:行者123 更新时间:2023-12-01 22:21:34 25 4
gpt4 key购买 nike

好吧,我不是在谈论业务逻辑决策,而是 UI 决策。

例如,我正在渲染一个表格,其中一列显示日期时间?需要格式化的属性。因为该值可以为空,所以我需要在格式化之前检查它是否不为空。

如果我想迂腐一些,我会在我的 ViewModel 上有一个 FormattedDate 属性:

public class MyViewModel 
{
...
public DateTime? Date { get; set; }

public string FormattedDate
{
get
{
return this.Date.HasValue ? this.Date.Value.ToShortDateString() : "";
}
}
}

<%= Html.Encode(Model.FormattedDate) %>

或者我可以为自己节省几行代码,然后将其简单地放入 View 中:

<%= Html.Encode(Model.Date.HasValue ? Model.Date.Value.ToShortDateString() : "")%> 

在这种情况下,由于这只会影响 View ,所以我认为用第二种方法是可以的(而且它更紧凑),但是我在哪里划清界限让我的 View 与服务器困惑-side 代码并使我的 ViewModel 充满“格式化”属性?

最佳答案

如果您直接将其放入 View 中,它并不会真正为您节省任何相关代码行 - 它只是将其移动。

但是,如果你把它放在View中,你就只能在那里使用它。您无法在其他地方重用 ViewModel 的逻辑,也无法对其进行单元测试。

让你的观点变得愚蠢。我想说 View 应该具有低 Cyclomatic Complexity尽可能。

参见this answer了解更多详情。

关于.net - ASP.NET MVC : How dumb should my view be?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2012549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com