首页 > 代码库 > MVC开发之排球计分(七)验证编辑方法
MVC开发之排球计分(七)验证编辑方法
修改代码,使得发布ReleaseDate看上去更好。打开Balls \ Ball.cs文件
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
namespace Balls.Models
{
public class Ball{
public int ID { get; set; }
public string one1{ get; set; }
public string one2 { get; set; }
public string one3{ get; set; }
}
public class BallsDBContext : DbContext
{
public DbSet<Ball> Team { get; set; }
}
}
在浏览器地址栏里追加/Balls, 浏览到Balls页面。并进入编辑(Edit)页面。
MapRoute方法是使用HTTP请求路由查找到正确的控制器(controller)和行动方法,并提供了可选ID的参数。
MapRoute方法也被用于通过HtmlHelpers如ActionLink的控制器,操作方法及任何路由数据,以生成URL。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Balls", action = "Index",
id = UrlParameter.Optional }
);
}
处理
POST 请求
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult one1([Bind(Include="ID,Shenglv,ReleaseDate,Age,Rongyu")] Movie movie)
{
if (ModelState.IsValid)
{
db.Entry(Ball).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(Ball);
}
接收form所post的数据,并转换所接收的Balls请求数据从而创建一个Ball对象。
ModelState.IsValid方法用于验证提交的表单数据是否可用于修改(编辑或更新)一个Ball对象。
如果数据是有效的数据,将保存到数据库的Ball集合(BallDBContext 实例)。
通过调用BallDBContext的SaveChanges方法,新的数据会被保存到数据库。
数据保存之后,代码会把用户重定向到BallsController类的Index操作方法,页面将显示列表,同时包括刚刚所做的更新。
添加搜索
public ActionResult Index(string BallGenre, string searchString)
{
var GenreLst = new List<string>();
var GenreQry = from d in db.Balls
orderby d.Genre
select d.Genre;
GenreLst.AddRange(GenreQry.Distinct());
ViewBag.movieGenre = new SelectList(GenreLst);
var Balls = from m in db.Movies
select m;
if (!String.IsNullOrEmpty(searchString))
{
Balls = Balls.Where(s => s.Title.Contains(searchString));
}
if (!string.IsNullOrEmpty(BallGenre))
{
Balls = Balls.Where(x => x.Genre == BallGenre);
}
return View(Balls);
方法的验证主要是对输入的得分情况及得分上限的验证
本次的项目验证是对排球每一局的得分进行简单的验证
MVC开发之排球计分(七)验证编辑方法