原文地址:http://www.cnblogs.com/flykai/p/3361064.html

 

前言

  konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作。Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的JavaScript类库。任何时候如果你的UI需要自动更新(比如:更新依赖于用户的行为或者外部数据源的改变),KO能够很简单的帮你实现并且很容易维护。其作用简单来说就是声明所需的数据作为一个JavaScript 模型对象(model object),然后将DOM 元素或者模板(templates)绑定到它上面。

创建mvc4+webapi+konckout.js的简单应用程序

1、首先准备一个测试的数据库,我这以我随便创建的一个数据库为例

表结构如下图:

(转)初试konckout+webapi简单实现增删改查

 

2、创建一个mvc程序,并在项目中添加一个以上表的ado.net实体数据模型

添加完成以后:

(转)初试konckout+webapi简单实现增删改查

3、添加添加一个带读写操作的EmployeeApiController webapi控制器和用来实现增删改查的普通控制器EmployeeController

添加是注意选择是带读写操作的webapi控制器,选择好数据模型及数据库上下文,方面vs自动为我们生成读写操作。

(转)初试konckout+webapi简单实现增删改查

添加完成后自动生成的完整代码:

(转)初试konckout+webapi简单实现增删改查
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using Knockout.Models;

namespace Knockout.Controllers
{
    public class EmployeeApiController : ApiController
    {
        private DemoDBEntities db = new DemoDBEntities();

        // GET api/EmployeeApi
        public IEnumerable<Employees> GetEmployees()
        {
            return db.Employees.AsEnumerable();
        }

        // GET api/EmployeeApi/5
        public Employees GetEmployees(int id)
        {
            Employees employees = db.Employees.Find(id);
            if (employees == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            return employees;
        }

        // PUT api/EmployeeApi/5
        public HttpResponseMessage PutEmployees(int id, Employees employees)
        {
            if (ModelState.IsValid && id == employees.EmployeeID)
            {
                db.Entry(employees).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    return Request.CreateResponse(HttpStatusCode.NotFound);
                }

                return Request.CreateResponse(HttpStatusCode.OK);
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }

        // POST api/EmployeeApi
        public HttpResponseMessage PostEmployees(Employees employees)
        {
            if (ModelState.IsValid)
            {
                db.Employees.Add(employees);
                db.SaveChanges();

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, employees);
                response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = employees.EmployeeID }));
                return response;
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
        }

        // DELETE api/EmployeeApi/5
        public HttpResponseMessage DeleteEmployees(int id)
        {
            Employees employees = db.Employees.Find(id);
            if (employees == null)
            {
                return Request.CreateResponse(HttpStatusCode.NotFound);
            }

            db.Employees.Remove(employees);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                return Request.CreateResponse(HttpStatusCode.NotFound);
            }

            return Request.CreateResponse(HttpStatusCode.OK, employees);
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}
(转)初试konckout+webapi简单实现增删改查
View Code

相关文章:

  • 2021-12-09
  • 2022-12-23
  • 2021-09-28
  • 2022-01-17
  • 2022-01-29
  • 2022-12-23
  • 2021-10-17
猜你喜欢
  • 2022-01-31
  • 2022-12-23
  • 2021-08-07
  • 2022-12-23
  • 2021-09-28
  • 2021-12-13
相关资源
相似解决方案