控制器接收不到js传过去的ID

开发工具与关键技术:Visual Studio
作者:肖广斌
撰写时间:2019年5月21日

关于这个小细节,很多人可能都遇到过这种问题,就是js明明获取到了页面的数据,却传不到控制器,特别是ID的数据传不过去,这种情况呢往往是因为隐藏域的问题,那么,我来说一下我遇到的问题
在这里插入图片描述
在这里插入图片描述
首先,这里是两个不同表格,不同模态框的隐藏域,但是B表连接着A表,B表需要用到A表的ID来作为外键,所以需要接收到A表的ID,这里可以看到,B表需要用到A表的ID,隐藏域的ID是唯一的,不一样肯定是可以的,但是我们这里的name也不一样,先看一下我获取到的数据
在这里插入图片描述
在这里插入图片描述
这里是我获取到的隐藏域里面的ID数据,可以发现,如果我们B表需要用到A表的ID时,那么我们获取到的数据不可能是空的,而这里却是空的,如果js获取不到页面的数据,那肯定传不到控制器那边,那么这个问题的关键在哪呢?就在于隐藏域里面的name,就是如果B表需要用到A表的作为外键的话,那么B表作为外键的那个隐藏域的name必须要跟A表隐藏域里的name一样,而A表的name要跟数据库的name要一致,所以也就是我们在设置隐藏域的name时,要根据数据库来命名,否则就接收不到数据
在这里插入图片描述
在这里插入图片描述
这是我把隐藏域的name改成跟数据库一样后再获取到的数据,当B表隐藏域的name跟A表隐藏域的name一样了,那么B表就能获取到A表的ID了,也能传到控制器了,这个小细节不注意的话真的真的挺难找出来的,已经亲身经历过,所以要注意一下!!!
不止是隐藏域,其他的input标签里面的name也要跟数据库对应才能接收到页面传过来的数据,所以这些获取不到数据的问题往往是因为我们在html里命名的错,名称不一致,导致接收不到数据或接收到的数据不一致,就会出现数据错误。

猜你喜欢

转载自blog.csdn.net/qq_44505797/article/details/90632115