私はMVCコントローラーにいます。Guid
クラスがあり、MVC でこのクラスの値を aまたは aを扱うのとまったく同じ方法で処理したいと考えていDateTime
ます。あれは:
- クラス タイプのインスタンスがフォームに書き出される場合、それは個別のフィールドとしてではなく、1 つの書式設定された文字列として書き出されます。
- 値 (文字列形式) がポストバックされると、自動的にクラスのインスタンスに変換されます。
概念的には、これを実装するには、各方向の変換関数のみが必要です。このインターフェースを実装するオブジェクトが 1 つ以上あるとします。
namespace SomeExample
{
public interface SomeStringConversion<T>
{
T ConvertFromString(string str);
string ConvertToString(T obj);
}
}
// Example: What such a class for Guid might look like
namespace SomeExample
{
public class SomeGuidStringConversion : SomeStringConversion<Guid>
{
public Guid ConvertFromString(string str)
{
return Guid.Parse(str);
}
public string ConvertToString(Guid g)
{
return g.ToString();
}
}
}
そして、 によって受け入れられたり拒否されたりする以上のことを検証することは気にしないとしましょうConvertFromString()
。
SomeStringConversion<T>
のコレクションからそれらを使用するコントローラーへの最も直接的なパス (つまり、モデル バインディングの無関係な機能について無関係な詳細をできるだけ少なくする) は何ですか?
編集: 私はしばらくの間開発者でしたが、MVC に関しては生肉です。逆方向に作業できるコードの例が必要です。大まかな説明はあまり役に立ちません。