MVC2 IModelBinder并将字符串解析为对象 - 我该怎么做?

时间:2010-02-02 23:50:27

标签: c# asp.net asp.net-mvc-2 model-binding

我有一个名为Time

的对象
public class Time{
   public int Hour  {get;set;}
   public int Minute {get;set;}     

   public static Time Parse(string timeString){
   //reads the ToString()'s previous output and returns a Time object
   }

   override protected string ToString(){
   //puts out something like 14:50 (as in 2:50PM)
   }
}

所以我想要的是编辑或创建动作的自动模型绑定,以便从字符串设置此Time实例(即使用字符串提供Parse方法并返回结果)。

我这样做的原因是我将有一个可选择的DropDownList。每个选项的值都是解析器可读字符串。

任何人都可以从IModelBinder接口提供示例BindModel方法吗?

2 个答案:

答案 0 :(得分:3)

好的,我找到了我想要的东西。 Model Binding by Scott Hanselman你是传奇人物斯科特。

关键组件使用“bindingContext.ModelName”来获取密钥的名称,然后从值提供程序中提取值,如下所示:

bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue

当然这是一个相当天真的实现,但它让我开始。

答案 1 :(得分:0)

使用绑定上下文,您可以获取ValueProvider或Request本身的句柄,并将值拉出并解析它。