私は 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
後者の場合、プロパティの「文字列から10進数へ」の問題に直面することになりstring IView.Amount
ますdecimal IView.Amount
(さらに悪いことに、パーセンテージ値を解析して%
符号を削除するなどIView
をインスタンスで正しく行う必要があります)元の数値型がわからない場合でも、数値は 10 進数でしたか、整数でしたか?)
パーセンテージを人間の V と見なすこともできます。パーセンテージ ビューでは 42%、プロミル ビューでは 420‰ は、モデルでは 0.42 のままです。