NET-MVC模式下同名表单控件引发的错误

昨天有人做页面时发现一个很奇怪的问题,弄了半天搞不定,于是找我帮他看看,因为比较典型,所以发出来供大家看看。

[问题描述]
UI是这样的:

上面两个按钮都是提交行为,正常情况下,点“添加”时,就会多一条数据,点“删除”时,选定的数据就会删除,也就是会少一条数据。

而实际是当用户不选择任何radio时,“添加”和“删除”都是正常的,而当选择了radio时,表单上的数据(即Model)就不正常,传递不了了。

[原因及解决办法]
最终发现,原来是因为他把radio的name属性设成和“选项下拉框”上的一样了,所以实际上传递的是radio的值,而不是后面“选项下拉框”中的Model值。

解决办法很简单,只要把radio的name改成和“选项下拉框”不一样的就可以了。

[问题分析]
之所以出现这样的问题,并且很难找到问题原因,这应该是由于对HTML理解不够造成的,现在的技术框架日益更新,让从业者的基础要求也日益减弱,恐怕以后要沦落到做软件就是拼凑模架的地步了吧。对于人类来说,复杂问题简单化,这是好事情。不过如果都停留在这样的水平上,又如何真正做到简单化呢?

所以希望大家从这样的问题上应该要有足够的认识,先努力加深自己对技术的理解吧。



郑重声明:
除特别声明为转载内容外,本站所有内容均为作者原创,谢绝任何单位和个人不经许可的复制和转播!
对于确有转载需要的,请先与作者联系,在获得允许后烦请在转载时保留文章出处。
本文出自Lupin's Blog:http://www.cnzui.com/archives/589