RadioButtonFor值为false.默认选中的问题

(自己看了下.图片有点宽.显示的不全.可以右键新标签查看)

作为一个新手.今天又开始了mvc的学习之旅.然而学习过程中又遇到了一个奇妙的问题....

一切按部就班到了这里.注册界面.

RadioButtonFor值为false.默认选中的问题

一眼看上去就不对劲.性别那里怎么默认是女.你可以选第一个.可以不选.默认选第二个.总让我觉的怪怪的.当然啦.还有一部分原因是和教程不一样.

我们来看看model

RadioButtonFor值为false.默认选中的问题

在看看视图代码

RadioButtonFor值为false.默认选中的问题

我也没有设置.默认选中了.第二个.

好了测试开始...不上截图了.说结果

这要不是bool的话.就不会选中.是bool的话.就会选中值为false的哪项.

这不行呐.我要解决这个问题.

于是百度之....找到一个方法.添加html属性.于是乎代码成了这样

RadioButtonFor值为false.默认选中的问题

然而界面还是这样....

RadioButtonFor值为false.默认选中的问题

赶紧看看源代码

RadioButtonFor值为false.默认选中的问题

完全不按剧本走.和我想的不一样.我以为手动赋值后就不会加了.好嘛.结果成了2个checked.不过即使是这样显示的还是选择第二个.

于是另辟蹊径.前面不是说了.不是bool.就不会默认选中了.于是乎.脑子一动.反正页面都是字符串.那就来个字符串把.

RadioButtonFor值为false.默认选中的问题

结果微软强大的地方来了.来了.来了.结果如下图.

RadioButtonFor值为false.默认选中的问题

我要说什么好.微软把字符的false也当做了.bool值来处理......

再想....要欺骗它.于是在false前面加了个空格

RadioButtonFor值为false.默认选中的问题

结果.

RadioButtonFor值为false.默认选中的问题

微软没有太"聪明".没有识别成bool值.但是这样怕后台.接受值时.转换不成bool.好在担心是多余的.成功识别了.

RadioButtonFor值为false.默认选中的问题

这样的话.我们可以通过添加属性.来显示默认选择哪个.或者什么都不选.

还有一个疑问.我说的教程中是怎么回事呢?

原来教程中的model是这样的

RadioButtonFor值为false.默认选中的问题

看见区别了吗?原来是教程中的数据库性别那里是可空.ef对应过来就是可空bool.这样的话.那里那样写就不会默认选中了.

我的数据库性别是不可空的.于是就遇到了上面的问题.

还好.顺利的解决了这个问题.也是一个小小的收获.我百度的过程中.并没有百度到这样的情况.所有在此分享出来.O(∩_∩)O~

上一篇:K8S学习笔记之Kubernetes核心概念


下一篇:Java基础之写文件——使用Formatter对象加载缓冲区(UsingAFormatter)