2011-04-09 66 views
0

我创建了一个帮助类来收集用户的出生日期。我不想使用日期选择器,因为我认为他们使用dob有点痛苦。mvc3助手将文本框绑定到隐藏字段

我创造了这个迄今为止

public static DateText DateTextFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> ex) 
    { 
     htmlHelper.ViewContext.Writer.Write(
      @"<div class=""date-control"">" + 
      @"<input type='text' name='Day' id='Day' maxlength='2'/>" + 
      @"<input type='text' name='Month' id='Month' maxlength='2'/>" + 
      @"<input type='text' name='Year' id='Year' maxlength='4'/>" + 
      @"<span>e.g. DD-MM-YYYY (31-03-1980)</span>" + 
      @"<input type='hidden' name='Date' id='Date'/>" + 
      @"</div>" 

     ); 

     return new DateText(htmlHelper.ViewContext); 
    } 

我要创建一个脚本来从3个文本框的数据并填充隐藏字段准备的HTTP POST。

因此,可以说我创造我的控制像

@Html.DateTextFor(model => model.DOB) 

我需要什么,我的助手修改的隐藏字段绑定到模型,所以当回发我有我想要的数据?

另外当我的页面呈现时,我正在将'My.Helpers.DateText'文本添加到页面中,这是什么原因造成的?

感谢您的帮助

回答

0

Cliet侧,你会使用JavaScript和拦截后,填充的领域,继续。服务器端替代方案将结合视图模型中的字段,DOB只读,或者你也可以继承defaultModelBimder并处理那里的组合(看起来像是矫枉过正)。我很流动,所以我很抱歉没有添加更多细节。