之前用ASP.NET3.5把当当网的网页弄成各种用户控件。
前阵子用了4.5做开发了,发现悲剧了。新的视图引擎(Razor),额,好想死。
没办法,从头学起。于是又把用户控件弄成了分页。
然后省略各种学习啊排错的蛋疼,在这篇文章里,着重讲作为一个新手在开发这个项目遇到的各种异常啊和错误的解决方案吧。
10:31 2013/10/13
在ASP.NET MVC视图中通过 @using (Html.BeginForm()) 产生的是form表单提交
卡在了EF传值这一步。
UserController:
- db.Users.Add(new Users {});
- db.SaveChanges();
- return RedirectToAction("Index");
debug产生的错误是
“/”应用程序中的服务器错误。
对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。
源错误:
行 47: //db.Users.Add(Users);
行 48: db.Users.Add(new Users {});
行 49: db.SaveChanges();
行 50: return RedirectToAction("Index");
行 51: |
解决方案:将ASP.NET MVC中的form提交改为ajax提交
但是我想最小幅度的更改我的代码
有人说“你看db.Users在哪定义的,就知道对应的Ef实体了,应该是User类,属性就是对应数据表的字段名”,
我把字段添加进去后
db.Users.Add(new Users{"Email"});
出现的错误是 无法使用集合初始值初始化类型,原因是它未实现“System.Collections.IEnumerable”
然后又有人说“得有默认构造也得有合适的自定义构造函数”。听不懂,唉。去找个范例,用Membership方法,然后...
不支持所指定的方法。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.NotSupportedException: 不支持所指定的方法。
源错误:
行 34: // 尝试注册用户
行 35: MembershipCreateStatus createStatus;
行 36: Membership.CreateUser(null, Users.Pwd, Users.Email, null, null, true, out createStatus);
行 37: db.SaveChanges();
行 38: return RedirectToAction("Index"); |

(待续)