asp.net mvc 中使用日期控件(My97DatePicker)(二)

   在asp.net mvc 中使用日期控件(My97DatePicker)(一) 中我们成功封装了日期控件并且能够在界面中显示和选择日期,但是我在后面的使用中发现当我将试图页面传回的数据转换为User对象的时候总是少日期类型的键值对,我一度以为是扩展的HtmlHelper有问题,但是明明已经在页面上成功生成日期选择框了,然后查找各种问题,不得结果。偶然之我查看了下生成Create试图的html页面html 源码,发现自定义的日期控件html 标签只有id,没有name,我立刻意识到问题所在,将日期框控件的HtmlHelper修改了一下 运行发现成功获得了所有数据!

     没有name 的html

 

<div class="editor-field">
                <input id="Name" name="Name" type="text" value="" />
                
            </div>
            
            <div class="editor-label">
                <label for="Age">年龄</label>
            </div>
            <div class="editor-field">
                <input id="Age" name="Age" type="text" value="" />
                
            </div>
            
              <div class="editor-label">
                <label for="Birthday">生日</label>
            </div>
            <div class="editor-field">
              <span style="color:#ff0000;">  <input type="text" id="Birthday"  onclick="WdatePicker({el:'Birthday'})" class="Wdate" value="" /></span>
                
            </div>

            <p>
                <input type="submit" value="Create" />
            </p>

   修改完成的HtmlHelper 中My97DatePicker的方法,之前是没有红色标示的name属性

 

  

        private static string GenerateHtml(string name, DateTime? date, string format)
        {
            if (date != null)
            {
                return "<input type=\"text\" id=\"" + name + "\" <span style="color:#ff0000;"> name=\"" + name + "\"</span>  onclick=\"WdatePicker({el:'" + name + "'})\" class=\"Wdate\" value=\"" + date.Value.ToString(format) + "\" />";
            }
            else
            {
                return "<input type=\"text\" id=\"" + name + "\" <span style="color:#ff0000;"> name=\"" + name + "\"</span> onclick=\"WdatePicker({el:'" + name + "'})\" class=\"Wdate\" value=\"\" />";
            }
        }

 

 

 

 控制器中转换对象的代码,之前collection 中总是没有Birthday的键值对数据

 

  [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here
                User user = new User();
                TryUpdateModel<User>(user);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

 

 

 

 

总结:在自定义控件的HtmlHelper时候要注意同时生成id和name,asp.net mvc 应该是根据id和name 来进行收集键值对集合的。

如果您觉得我的文章对您有所帮助,欢迎扫码进行赞赏!

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨4点5杀老大爷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值