用于将文本框绑定到隐藏字段的mvc3帮助程序

时间:2011-04-09 04:37:10

标签: asp.net asp.net-mvc-3

我正在创建一个帮助类来收集用户的出生日期。我不想使用日期选择器,因为我认为使用dob会有点痛苦。

我到目前为止已经创建了这个

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帖子准备好的隐藏字段。

让我说我创建我的控件

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

我需要在帮助器中修改什么才能将隐藏字段绑定到模型,以便在回发时我有我想要的数据?

此外,当我的页面呈现时,我将“My.Helpers.DateText”文本添加到页面中,导致这种情况的原因是什么?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

Cliet方面,您将使用JavaScript并拦截帖子,填充该字段并继续。服务器端替代方案是组合viewmodel中的字段,DOB只读,或者您也可以从defaultModelBimder继承并处理组合(看起来像矫枉过正)。我是移动的,所以我为没有添加更多细节而道歉。