zoukankan      html  css  js  c++  java
  • 排球计分程序(八)——验证编辑方法(Edit method)和编辑视图(Edit view)

    修改代码,使得发布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 Title { get; set; }

    [Display(Name = "Release Date")]

    [DataType(DataType.Date)]

    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]

    public DateTime ReleaseDate { get; set; }

    public string Shenglv { get; set; }

    public string Rongyu { get; set; }

    }

    public class BallsDBContext : DbContext

    {

    public DbSet<Ball> Movies { 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 Edit([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);

    }

  • 相关阅读:
    图解持续集成纯命令行实现.Net项目每日构建(流程支持)
    (转) 持续集成(第一版)Martin Fowler等著
    Glut框架示例
    常见希腊字母读法
    【译】VC10中的C++0x特性 Part 2 (2):右值引用
    【排序】排序算法之交换排序
    OpenGL开发环境配置
    Android 上实现水波特效
    有关singleton的资料
    【排序】排序算法之选择排序
  • 原文地址:https://www.cnblogs.com/sdl1305702018/p/7064125.html
Copyright © 2011-2022 走看看