2016-04-25 87 views
1

所以主持人調用模型來獲取一些數據。在MVP模式中,演示者是否負責將數字格式化爲百分比?

該數據作爲無格式的DTO返回。

假設的數據只是一個小數.12

請問主持人然後格式化數的百分比?

view.Amount = Math.Round(dto.Amount * 100, 2) + "%"; 

還是它的意見責任?

public decimal Amount 
{ 
    set 
    { 
     txtAmount.Text = Math.Round(dto.Amount * 100, 2) + "%"; 
    } 
} 

回答

1

我不使用C#和WebFormsMvp,但我覺得你的問題是相當多有關共同MVP架構。讓我從WebFormsMvp範圍中解釋它。 P的唯一責任應該是M和V之間的中介(就如何將M數據「傳遞」給V而言,反之亦然),並且V負責將數據表示爲用戶。

請考慮以下情況:您決定放棄txtAmount字段(讓我們考慮它只是一個文本標籤或輸入等),以支持某種進度條或簡單圖表。如果您之前通過了「規範化」數字值(因爲它們來自您的案例中的M) - 您仍然可以根據需要替換您的數量視圖,因爲它們應該接受原始數值。

public interface IView { 
    decimal Amount { set; } 
} 

比較上面:

public interface IView { 
    // How to apply a string to a chart as a data item? 
    string Amount { set; } 
} 

對於後者,你會面對面與「字符串到十進制」問題爲Amount財產需要返工您string IView.Amountdecimal IView.Amount(或者更糟糕的是:解析百分比值,在IView實例中將%符號等放在右邊,使其再次成爲一個數字,即使不知道原始數字類型:是小數還是整數?)

您也可以將百分比視爲人類的V:百分比視圖中的42%或promille視圖中的420‰在模型中仍然爲0.42。

+0

這清除了它並且非常有意義。謝謝! – drizzie

相關問題