开发环境:VS2008 mvc2
如何在服务器端验证数据?
数据已经能够插入到表中,什么都不输入 直接堤交过去,会插入一条空的记录
网下查了半天,也没有弄明白,自带的代码也没有搞清楚,请哪位帮忙,谢谢!
view 代码如下
- C# code
<% using (Html.BeginForm()) { %> <%= Html.ValidationSummary(true, "必要的信息请输入")%> 分类名称:<%=Html.TextBox("typename")%> <%= Html.ValidationMessage("typename")%><br /> 是否可见:<%=Html.CheckBox("isvisible")%><br /> <input type="submit" value="tijiao" /> <%}%>
controller代码
- C# code
[AcceptVerbs(HttpVerbs.Post)] public ActionResult typeadd(string typename, bool isvisible) { Dal.typenews tn = new Dal.typenews(); Model.typenews model = new Model.typenews(); if (ModelState.IsValid) { model.typename = Server.HtmlEncode(typename); model.isvisible = isvisible; if (tn.Add(model) > 0) { //添加成功,跳转到列表页 Response.Redirect("typelist"); } } return View(model); }
------解决方案--------------------
将断点插入到函数开始处,typeadd(string typename, bool isvisible)
查看typename的值是多少?(有木有值呢?)
------解决方案--------------------
我想这个页面内的方法可以帮你解决问题。我刚才看了下,主要两种方法,第一个,自己在typeadd函数中判断是否为空校验,第二个是重写ValidationRules函数。
地址如下:http://www.cnblogs.com/qleelulu/archive/2008/10/08/1305962.html
------解决方案--------------------
呵呵,关注一下
------解决方案--------------------
后台控制器:
- C# code
if (this.IsPost) { TryUpdateModel(user, new string[] {"Email", "Name", "Password", "NickName"}); if (string.IsNullOrEmpty(user.Email)) { ModelState.AddModelError("Email", "请填写邮箱."); } else if (this.UserService.FindByEmail(user.Email) != null) { ModelState.AddModelError("Email", "该邮箱已经被使用."); } if (string.IsNullOrEmpty(user.Name)) { ModelState.AddModelError("Name", "请填写用户名."); } else if (this.UserService.FindByName(user.Name) != null) { ModelState.AddModelError("Name", "该用户名已经被使用."); } ...
------解决方案--------------------
- C# code
if (ModelState.IsValid) { this.UserService.Save(user); } } return View(user);