这两天做网站,某页中使用了EntityDataSource结合FormView插入数据,先是自动生成了这么个基本的表单:
然后运行,插入测试数据:
(咋变这色了?? )
结果回回报错!
始终找不出错误位置,弄得我直想挠墙。
后来想到可能是Entity Framework中定义的所属省、所属市县两个属性属于对象引用,而FormView貌似是Asp.net 2.0的产物,可能不支持这么高科技的玩意,想来可能得老老实实用SqlDataSource了~
不过还是不甘心,继续Google搜啊搜,突然找到MSDN这篇《如何:将 Web 控件绑定到 EntityDataSource》,答案就在这里,只不过解决方法比较龌龊,真是从未见到过这么龌龊的官方指导方案~~ :
在“源”视图中打开 Default.aspx 文件。
查找并移除所有 Address.AddressID、Address1.AddressID 和 Contact.ID 实例周围的方括号 [ ]。将在 ItemTemplate 和 InsertItemTemplate 中的所有 Eval 和 Bind 函数匹配项中找到这些类型。
唉,龌龊就龌龊吧,照着来吧,在InsertItemTemplate里找到那些带括号的属性,把括号去掉就行了:
嗯~真是恶心,不知道微软怎么想的。
倒是真管用,立马能更新了。希望不要再有人被这个困扰到。
本文转自斯克迪亚博客园博客,原文链接:http://www.cnblogs.com/SkyD/archive/2009/06/04/1495806.html,如需转载请自行联系原作者