精华内容
下载资源
问答
  • CASK (Community Advanced Starter Kit 2.0)社区初学者启动工具包高级版本,它能快速地创建一个社区网站,例如用户组站,开发者资源网。当前有7大标准内容模块:文章,链接,下载,相册,事件日志,图书。...
  • ASP.NET web 开发示例

    2017-07-25 11:09:22
    实例示范了 ASP.NET web 开发的基本要点。
  • ASP.NET WebAPI开发实例

    千次阅读 2020-06-29 16:52:31
    文件 - 新建项目 - Visual C# - WebASP.NET MVC4 Web 应用程序 选择空项目组 项目右键 – 管理NuGet程序包 选择联机 – 搜索webapi – 安装webapi2.2 – 安装webapi2.2helppage Webapi2.2为res

    最近因为朋友的一个提问,自己就去学习了一下WebApi,后来百度了一下发现了一遍不错的文档,记录转载一下。

    一、环境搭建

    打开VS2012, IDE版本为Visual Studio Ultimate 2012

    这里写图片描述
    文件 - 新建项目 - Visual C# - Web – ASP.NET MVC4 Web 应用程序

    这里写图片描述

    选择空项目组
    这里写图片描述

    项目右键 – 管理NuGet程序包
    这里写图片描述
    选择联机 – 搜索webapi – 安装webapi2.2 – 安装webapi2.2helppage
    这里写图片描述

    Webapi2.2为restApi开发依赖库,webapi2.2helppage为restApi帮助文档自动生成依赖库,安装成功后,项目目录中会新增一个Areas文件夹,存放的是helppage的相关代码。
    项目右键 – 属性
    这里写图片描述

    选择生成选项 – 勾选XML文档文件 – 复制路径 – 保存
    这里写图片描述

    Areas – HelpPage – App_Start – HelpPageConfig.cs
    这里写图片描述

    反注释 – 更改路径
    这里写图片描述
    App_Start – RouteConfig.cs
    这里写图片描述

    routes.MapRoute(
        "HelpPage", // 路由名称
        "{controller}/{action}/{id}", // 带有参数的 URL
        new { controller = "help", action = "Index", id = UrlParameter.Optional }, // 参数默认值
        new string[] { "mvcProject.Areas.HelpPage.Controllers" }
    ).DataTokens.Add("Area", "HelpPage");

    这里写图片描述

    App_Start – WebApiConfig.cs
    这里写图片描述

    添加{action}
    这里写图片描述

    Controllers右键 – 添加 – 控制器


    这里写图片描述
    选择包含空读/写操作的API控制器 – 添加
    这里写图片描述

    运行项目
    这里写图片描述
    测试api – 输入http://localhost:10830/api/test/get(端口号改为自己的端口)
    这里写图片描述

    这里写图片描述

    二、 请求方式
    http://www.cnblogs.com/landeanfen/p/5337072.html
    https://blog.csdn.net/qq_22267353/article/details/82216535

    三、 跨域问题
    项目右键 – 管理NuGet程序包
    这里写图片描述

    联机 – 搜索webApi
    这里写图片描述
    Web.config

    这里写图片描述

    添加代码

    <add key="cors_allowOrigins" value="*" />
    <add key="cors_allowHeaders" value="*" />
    <add key="cors_allowMethods" value="*" />

    cors_allowOrigins 表示允许请求的网站, *表示允许所有网站请求
    这里写图片描述
    App_Start – WebApiConfig.cs
    这里写图片描述

    using System.Configuration;
    
    var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"];
    var allowHeaders = ConfigurationManager.AppSettings["cors_allowHeaders"];
    var allowMethods = ConfigurationManager.AppSettings["cors_allowMethods"];
    var globalCors = new System.Web.Http.Cors.EnableCorsAttribute(allowOrigins, allowHeaders, allowMethods)
    {
        SupportsCredentials = true
    };
    config.EnableCors(globalCors);
    

    这里写图片描述

    四、 打包发布

    项目 – 右键 – 发布
    这里写图片描述
    新建配置文件
    这里写图片描述

     

    名称随便取
    这里写图片描述
    发布方法 – 文件系统
    这里写图片描述
    选择网站包存放的位置
    这里写图片描述

    点击发布
    这里写图片描述

    这里写图片描述

    展开全文
  • ASP.NET MVC开发实例

    千次阅读 2011-04-19 11:21:00
    选择相关开发语言,创建一个 ASP.NET MVC Web Application 项目,选择不需要单元测试,这样生成了一个MVC框架,按Ctrl+F5运行,可看到一个欢迎主页。 注意:使用MVC后不是按链接文件来访问页面,而

    MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC,并在vs2010中已经内置了MVC的相关功能。如果使用vs2008,需要下载安装Service Pack 1和ASP.NET MVC Framework。MVC现在已经是2.0的版本。

    选择相关开发语言,创建一个 ASP.NET MVC Web Application 项目,选择不需要单元测试,这样生成了一个MVC框架,按Ctrl+F5运行,可看到一个欢迎主页。

    注意:使用MVC后不是按链接文件来访问页面,而是通过控制器实现路由链接。

    我们通过一个简单的增删查改的功能来体会一下MVC开发的过程。

    第一步:模块开发

    首先我们创建一个简单的表格:test,该表格只有两个字段:id和name。并创建一个数据类,在Models文件夹中创建一个类,代码如下:

     

    代码
        
    // Test.cs

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;



    namespace MvcWeb.Models

    {

    public class Test

    {

    private int _id = - 1 ;



    public int id

    {

    get { return _id; }

    set { _id = value; }

    }



    public String name { get ; set ;}

    }

    }

     

     

    然后在Models文件夹中创建一个文件夹:Maping,在此文件中新建一个LINQ to Sql,将test表拖进设计器中,保存。

    最后在Models文件夹中新建一个类:TestModel.cs,输入如下代码:

     

    代码
        
    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Data.Linq;

    using MvcWeb.Models.Maping;



    namespace MvcWeb.Models

    {

    public static class TestModel

    {

    private static TestDbMapingDataContext testDb = new TestDbMapingDataContext();



    // 返回记录总数

    public static int Count()

    {

    return testDb.test.Count();

    }



    // 分页列表

    public static List < Test > GetList( int page, int pageSize)

    {

    var query
    = (from c in testDb.test orderby c.id ascending select c).Skip((page - 1 ) * pageSize).Take(pageSize);

    List
    < Test > result = new List < Test > ();

    foreach (var t in query)

    result.Add(FillRecord(t));

    return result;

    }



    // 列表

    public static List < Test > GetList()

    {

    var query
    = (from c in testDb.test orderby c.id ascending select c);

    List
    < Test > result = new List < Test > ();

    foreach (var t in query)

    result.Add(FillRecord(t));

    return result;

    }



    // 修改和插入保存

    public static long Save(Test myTest)

    {

    try

    {

    test t
    = (from c in testDb.test where c.id == myTest.id select c).FirstOrDefault();

    if (t == null )

    {

    t
    = new test();

    t.id
    = myTest.id;

    t.name
    = myTest.name;

    testDb.test.InsertOnSubmit(t);

    }

    else

    {

    t.name
    = myTest.name;

    }

    testDb.SubmitChanges();

    return t.id;

    }

    catch (ChangeConflictException ce)

    {

    testDb.ChangeConflicts.ResolveAll(RefreshMode.OverwriteCurrentValues);

    testDb.SubmitChanges();

    }

    return - 1 ;

    }



    // 删除记录

    public static bool Delete( int id)

    {

    try

    {



    test t
    = (from c in testDb.test where c.id == id select c).FirstOrDefault();

    testDb.test.DeleteOnSubmit(t);



    testDb.SubmitChanges();

    return t != null ;

    }

    catch (ChangeConflictException ce)

    {

    testDb.ChangeConflicts.ResolveAll(RefreshMode.OverwriteCurrentValues);

    testDb.SubmitChanges();

    }

    return false ;

    }



    // 取一条记录

    public static Test GetItem( int id)

    {

    test t
    = (from c in testDb.test where c.id == id select c).FirstOrDefault();

    return FillRecord(t);

    }



    // 构造数据对象

    private static Test FillRecord(test i)

    {

    Test result
    = null ;

    if (i != null )

    {

    result
    = new Test();

    result.id
    = i.id;

    result.name
    = i.name;

    }

    return result;

    }

    }

    }

     

     

    第二步:控制器开发

    在Controllers文件夹中右键选择Controller,将生成一个控制器,将文件名改为:TestController.cs,并将代码做些修改,以访问模块:

     

    代码
        
    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.Mvc;

    using MvcWeb.Models;



    namespace MvcWeb.Controllers

    {

    public class TestController : Controller

    {

    //

    // GET: /Test/

    int pageSize = 3 ;



    public ActionResult Index( int page)

    {

    if (page * pageSize > TestModel.Count()) page = page - 1 ;

    if (page <= 0 ) page = 1 ;



    ViewData[
    " page " ] = page;



    var model
    = TestModel.GetList(page, pageSize);



    return View(model);

    }



    //

    // GET: /Test/Details/5



    public ActionResult Details( int id)

    {

    var model
    = TestModel.GetItem(id);

    return View(model);

    }



    //

    // GET: /Test/Create



    public ActionResult Create()

    {

    Test mytest
    = new Test();

    return View(mytest);

    }



    //

    // POST: /Test/Create



    [HttpPost]

    public ActionResult Create( int id,FormCollection collection)

    {

    try

    {

    // TODO: Add insert logic here

    Test mytest
    = new Test();

    UpdateModel(mytest, collection.ToValueProvider());

    if (mytest.name == null )

    ViewData.ModelState.AddModelError(
    " name " , " userName not specified. " );

    if ( ! ViewData.ModelState.IsValid)

    throw new InvalidOperationException();

    TestModel.Save(mytest);



    return RedirectToAction( " Index?page=1 " );



    }

    catch (InvalidOperationException ex)

    {

    return View( new Test());

    }

    }



    //

    // GET: /Test/Edit/5



    public ActionResult Edit( int id)

    {

    var model
    = TestModel.GetItem(id);

    return View(model);

    }



    //

    // POST: /Test/Edit/5



    [HttpPost]

    public ActionResult Edit( int id, FormCollection collection)

    {

    try

    {

    // TODO: Add update logic here

    Test mytest
    = new Test();



    UpdateModel(mytest, collection.ToValueProvider());



    TestModel.Save(mytest);



    return RedirectToAction( " Index?page=1 " );

    }

    catch

    {

    return View();

    }

    }



    //

    // GET: /Test/Delete/5



    public ActionResult Delete( int id)

    {

    var model
    = TestModel.GetItem(id);

    return View(model);

    }



    //

    // POST: /Test/Delete/5



    [HttpPost]

    public ActionResult Delete( int id, FormCollection collection)

    {

    try

    {

    // TODO: Add delete logic here

    TestModel.Delete(id);

    return RedirectToAction( " Index " , new { page = 1 });

    }

    catch

    {

    return View();

    }

    }

    }

    }

     

     

    第三步:视图开发

    在控制器的Index方法中按右键,选择“Add View”,作出如下图的选择:

     

    即在Views/Test文件夹下面生成一个视图:Index.aspx,因为我们使用了分页设计,所以在文件后面加上如代码:

     

       
    <%= Html.ActionLink( " Create New " , " Create " ) %>

    <% = Html.ActionLink( " << 前一页 " , " Index " , new { page = ( int )ViewData[ " Page " ] - 1 }) %>

    <% = Html.ActionLink( " 后一页 >> " , " Index " , new { page = ( int )ViewData[ " Page " ] + 1 }) %>

     

     

    打开Views/Home/Index.aspx,加入一个对Test页面的链接:

     

       
    <%= Html.ActionLink( " 测试 " , " Index?page=1 " , " Test " ) %>

     

     

    按上面的方法在控制器的Create, Edit, Delete生成相关视图,因为主页使用了分页,所以要将返回主页的链接“Back to List”,略作修改:“Index?page=1”。我们可以看看生成的Create.aspx的代码:

     

    代码
        
    <% @ Page Title = "" Language = " C# " MasterPageFile = " ~/Views/Shared/Site.Master " Inherits = " System.Web.Mvc.ViewPage<MvcWeb.Models.Test> " %>



    < asp:Content ID ="Content1" ContentPlaceHolderID ="TitleContent" runat ="server" >

    Create

    </ asp:Content >



    < asp:Content ID ="Content2" ContentPlaceHolderID ="MainContent" runat ="server" >



    < h2 > Create </ h2 >



    <% using (Html.BeginForm()) { %>

    <% = Html.ValidationSummary( true ) %>



    < fieldset >

    < legend > Fields </ legend >



    < div class ="editor-label" >

    <% = Html.LabelFor(model => model.id) %>

    </ div >

    < div class ="editor-field" >

    <% = Html.TextBoxFor(model => model.id) %>

    <% = Html.ValidationMessageFor(model => model.id) %>

    </ div >



    < div class ="editor-label" >

    <% = Html.LabelFor(model => model.name) %>

    </ div >

    < div class ="editor-field" >

    <% = Html.TextBoxFor(model => model.name) %>

    <% = Html.ValidationMessageFor(model => model.name) %>

    </ div >



    < p >

    < input type ="submit" value ="Create" />

    </ p >

    </ fieldset >



    <% } %>



    < div >

    <% = Html.ActionLink( " Back to List " , " Index?page=1 " ) %>

    </ div >



    </ asp:Content >


     

     

    完成任务,按Ctrl+F5运行,在主页上点击“测试”,即可体验增删查改的功能。

    展开全文
  • 正则表达式教程 css滤镜 css中文教程 CSS参考手册 jscript5.5参考手册 ...ASP.net Ajax 开发 项目常用js特效(code) javascript 王者归来(code) JavaScript 实例自学手册(code) JavaScript源码大全 v1.0(code)
  • ASP.NET WEB API入门实例

    千次阅读 2018-03-06 08:26:45
    1.WebApi是什么 ASP...ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。 可以把WebApi看成Asp.Net项目类型中的一种,其他项目类型诸如我们熟知的WebForm项目,Windows窗体项目...

    1.WebApi是什么

        ASP.NET Web API 是一种框架,用于轻松构建可以由多种客户端(包括浏览器和移动设备)访问的 HTTP 服务。ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。

        可以把WebApi看成Asp.Net项目类型中的一种,其他项目类型诸如我们熟知的WebForm项目,Windows窗体项目,控制台应用程序等。

        WebApi类型项目的最大优势就是,开发者再也不用担心客户端和服务器之间传输的数据的序列化和反序列化问题,因为WebApi是强类型的,可以自动进行序列化和反序列化,一会儿项目中会见到。

        下面我们建立了一个WebApi类型的项目,项目中对产品Product进行增删改查,Product的数据存放在List<>列表(即内存)中。

    2.页面运行效果

    Asp.net WebApi 项目示例(增删改查)0

    如图所示,可以添加一条记录; 输入记录的Id,查询出该记录的其它信息; 修改该Id的记录; 删除该Id的记录。

    3.二话不说,开始建项目

    1)新建一个“ASP.NET MVC 4 Web 应用程序”项目,命名为“ProductStore”,点击确定,如图

    Asp.net WebApi 项目示例(增删改查)1

    2)选择模板“Web API”,点击确定,如图

    Asp.net WebApi 项目示例(增删改查)2

    3)和MVC类型的项目相似,构建程序的过程是先建立数据模型(Model)用于存取数据, 再建立控制器层(Controller)用于处理发来的Http请求,最后构造显示层(View)用于接收用户的输入和用户进行直接交互。

     

         这里我们先在Models文件夹中建立产品Product类: Product.cs,如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace ProductStore.Models
    {
        public class Product
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Category { get; set; }
            public decimal Price { get; set; }
        }
    }

    4)试想,我们目前只有一个Product类型的对象,我们要编写一个类对其实现增删改查,以后我们可能会增加其他的类型的对象,再需要编写一个对新类型的对象进行增删改查的类,为了便于拓展和调用,我们在Product之上构造一个接口,使这个接口约定增删改查的方法名称和参数,所以我们在Models文件夹中新建一个接口:  IProductRepository.cs ,如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ProductStore.Models
    {
        interface IProductRepository
        {
            IEnumerable<Product> GetAll();
            Product Get(int id);
            Product Add(Product item);
            void Remove(int id);
            bool Update(Product item);
        }
    }

    5)然后,我们实现这个接口,在Models文件夹中新建一个类,具体针对Product类型的对象进行增删改查存取数据,并在该类的构造方法中,向List<Product>列表中存入几条数据,这个类叫:ProductRepository.cs,如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace ProductStore.Models
    {
        public class ProductRepository:IProductRepository
        {
            private List<Product> products = new List<Product>();
            private int _nextId = 1;
            public ProductRepository()
            {
                Add(new Product { Name="Tomato soup",Category="Groceries",Price=1.39M});
                Add(new Product { Name="Yo-yo",Category="Toys",Price=3.75M});
                Add(new Product { Name = "Hammer", Category = "Hardware", Price = 16.99M });
            }
    
    
            public IEnumerable<Product> GetAll()
            {
                return products;
            }
    
            public Product Get(int id)
            {
                return products.Find(p=>p.Id==id);
            }
    
            public Product Add(Product item)
            {
                if (item == null)
                {
                    throw new ArgumentNullException("item");
                }
                item.Id = _nextId++;
                products.Add(item);
                return item;
            }
    
            public void Remove(int id)
            {
                products.RemoveAll(p=>p.Id==id);
            }
    
            public bool Update(Product item)
            {
                if (item == null)
                {
                    throw new ArgumentNullException("item");
                }
                int index = products.FindIndex(p=>p.Id==item.Id);
                if (index == -1)
                {
                    return false;
                }
                products.RemoveAt(index);
                products.Add(item);
                return true;
            }
        }
    }

    此时,Model层就构建好了。

    6)下面,我们要构建Controller层,在此之前,先回顾一下Http中几种请求类型,如下

     

         get  类型  用于从服务器端获取数据,且不应该对服务器端有任何操作和影响

         post 类型  用于发送数据到服务器端,创建一条新的数据,对服务器端产生影响

         put 类型  用于向服务器端更新一条数据,对服务器端产生影响 (也可创建一条新的数据但不推荐这样用)

         delete 类型 用于删除一条数据,对服务器端产生影响

     

         这样,四种请求类型刚好可对应于对数据的 查询,添加,修改,删除。WebApi也推荐如此使用。在WebApi项目中,我们请求的不再是一个具体页面,而是各个控制器中的方法(控制器也是一种类,默认放在Controllers文件夹中)。下面我们将要建立一个ProductController.cs控制器类,其中的方法都是以“Get Post Put Delete”中的任一一个开头的,这样的开头使得Get类型的请求发送给以Get开头的方法去处理,Post类型的请求交给Post开头的方法去处理,Put和Delete同理。

        而以Get开头的方法有好几个也是可以的,此时如何区分到底交给哪个方法执行呢?这就取决于Get开头的方法们的传入参数了,一会儿在代码中可以分辨。
       构建Controller层,在Controllers文件夹中建立一个ProductController.cs控制器类,如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using ProductStore.Models;
    using System.Web.Http;
    using System.Net;
    using System.Net.Http;
    
    namespace ProductStore.Controllers
    {
        public class ProductsController : ApiController
        {
            static readonly IProductRepository repository = new ProductRepository();
    
            //GET:  /api/products
            public IEnumerable<Product> GetAllProducts()
            {
                return repository.GetAll();
            }
    
            //GET: /api/products/id
            public Product GetProduct(int id)
            {
                Product item = repository.Get(id);
                if (item == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);            
                }
                return item;
            }
    
            //GET: /api/products?category=category
            public IEnumerable<Product> GetProductsByCategory(string category)
            {
                return repository.GetAll().Where(p=>string.Equals(p.Category,category,StringComparison.OrdinalIgnoreCase));
            }
    
            //POST: /api/products
            public HttpResponseMessage PostProduct(Product item)
            {
                item = repository.Add(item);
    
                var response = Request.CreateResponse<Product>(HttpStatusCode.Created,item);
                string uri = Url.Link("DefaultApi", new { id=item.Id});
                response.Headers.Location = new Uri(uri);
    
                return response;
            }
    
            //PUT: /api/products/id
            public void PutProduct(int id, Product product)
            {
                product.Id = id;
                if (!repository.Update(product))
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }
            }
    
            //Delete: /api/products/id
            public void DeleteProduct(int id)
            {
                Product item = repository.Get(id);
                if (item == null)
                {
                    throw new HttpResponseException(HttpStatusCode.NotFound);
                }
                repository.Remove(id);
            }
        }
    }

    使该类继承于ApiController类,在其中实现处理各种Get,Post,Put,Delete类型Http请求的方法。

    每一个方法前都有一句注释,标识了该方法的针对的请求的类型(取决于方法的开头),以及要请求到该方法,需要使用的url。

    这些url是有规律的,见下图:

    Asp.net WebApi 项目示例(增删改查)3

    api是必须的,products对应的是ProductsControllers控制器,然后又Http请求的类型和url的后边地址决定。

    这里,我们除了第三个“Get a product by category”,其他方法都实现了。

    7)最后,我们来构建View视图层,我们更改Views文件夹中的Home文件夹下的Index.cshtml文件,这个文件是项目启动页,如下:

    <div id="body">
        <script src="~/Scripts/jquery-1.8.2.min.js"></script>
        <section >
              <h2>添加记录</h2>
              Name:<input id="name" type="text" /><br />
              Category:<input id="category" type="text" />
              Price:<input id="price" type="text" /><br />
              <input id="addItem" type="button" value="添加" />
        </section>
    
        <section>
            <br />
            <br />
              <h2>修改记录</h2>
              Id:<input id="id2" type="text" /><br />
              Name:<input id="name2" type="text" /><br />
              Category:<input id="category2" type="text" />
              Price:<input id="price2" type="text" /><br />
              <input id="showItem" type="button" value="查询" />
              <input id="editItem" type="button" value="修改" />
              <input id="removeItem" type="button" value="删除" />
        </section>
    
    </div>

    8)然后我们给页面添加js代码,对应上面的按钮事件,用来发起Http请求,如下:

      <script>
            //用于保存用户输入数据
            var Product = {
                create: function () {
                    Id: "";
                    Name: "";
                    Category: "";
                    Price: "";
                    return Product;
                }
            }
    
            //添加一条记录 请求类型:POST  请求url:  /api/Products  
            //请求到ProductsController.cs中的 public HttpResponseMessage PostProduct(Product item) 方法
            $("#addItem").click(function () {
                var newProduct = Product.create();
                newProduct.Name = $("#name").val();
                newProduct.Category = $("#category").val();
                newProduct.Price = $("#price").val();
    
                $.ajax({
                    url: "/api/Products",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    data: JSON.stringify(newProduct),
                    success: function () {
                        alert("添加成功!");
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("请求失败,消息:" + textStatus + "  " + errorThrown);
                    }
                });
            });
    
            //先根据Id查询记录  请求类型:GET  请求url:  /api/Products/Id  
            //请求到ProductsController.cs中的 public Product GetProduct(int id) 方法
            $("#showItem").click(function () {
                var inputId = $("#id2").val();
                $("#name2").val("");
                $("#category2").val("");
                $("#price2").val("");
                $.ajax({
                    url: "/api/Products/" + inputId,
                    type: "GET",
                    contentType: "application/json; charset=urf-8",
                    success: function (data) {
                        $("#name2").val(data.Name);
                        $("#category2").val(data.Category);
                        $("#price2").val(data.Price);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("请求失败,消息:" + textStatus + "  " + errorThrown);
                    }
                });
            });
    
            //修改该Id的记录 请求类型:PUT  请求url:  /api/Products/Id  
            //请求到ProductsController.cs中的 public void PutProduct(int id, Product product) 方法
            $("#editItem").click(function () {
                var inputId = $("#id2").val();
                var newProduct = Product.create();
                newProduct.Name = $("#name2").val();
                newProduct.Category = $("#category2").val();
                newProduct.Price = $("#price2").val();
    
                $.ajax({
                    url: "/api/Products/" + inputId,
                    type: "PUT",
                    data: JSON.stringify(newProduct), 
                    contentType: "application/json; charset=urf-8",
                    success: function () {
                        alert("修改成功! ");
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("请求失败,消息:" + textStatus + "  " + errorThrown);
                    }
                });
            });
    
            //删除输入Id的记录  请求类型:DELETE  请求url:  /api/Products/Id  
            //请求到ProductsController.cs中的  public void DeleteProduct(int id) 方法
            $("#removeItem").click(function () {
                var inputId = $("#id2").val();
                $.ajax({
                    url: "/api/Products/" + inputId,
                    type: "DELETE",
                    contentType: "application/json; charset=uft-8",
                    success: function (data) {                   
                            alert("Id为 " + inputId + " 的记录删除成功!");
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("请求失败,消息:" + textStatus + "  " + errorThrown);
                    }
                });
            });
        </script>

    这里,WebApi的一个简单的增删改查项目就完成了,选择执行项目即可测试。注意到,其中用ajax发起请求时,发送到服务器端的数据直接是一个json字符串,当然这个json字符串中每个字段要和Product.cs类中的每个字段同名对应,在服务器端接收数据的时候,我们并没有对接收到的数据进行序列化,而返回数据给客户端的时候也并没有对数据进行反序列化,大大节省了以前开发中不停地进行序列化和反序列化的时间。

    展开全文
  • ASP.NET操作数据库实例

    2011-08-03 00:52:59
    ASP.NET操作数据库实例ASP.NET操作数据库实例ASP.NET操作数据库实例ASP.NET操作数据库实例
  • ASP.NET开发实例大全(提高卷)》分6篇共20章,主要内容有ASP.NET网站开发常备技术、ASP.NET前端技术应用开发、ASP.NET与Word文件交互操作、ASP.NET高效应用Excel文件、ADO.NET数据库操作技术、ADO.NET事务应用、...
  • 本书共分为三部分,通过理论和实例应用,详细讲述了ASP.NET技术。 第一部分是ASP.NET编程环境。这一部分从ASP.NET基础知识开始,详细介绍了ASP...本书适合于ASP.NET的初学者,尤其适合于正在用ASP.NET做项目开发人员。
  • ASP.NET Web API

    2019-01-15 11:16:41
    实例演示的方式介绍了很多与ASP.NET Web API 相关的最佳实践,同时还提供了一系列实用性的扩展。《ASP.NET Web API 2框架揭秘》详细讲解了ASP.NET Web API 从接收请求到响应回复的整个流程,包括路由、...
  • ASP.NET WebApi简单实例

    2020-10-18 18:58:52
    代码如下所示: 调用第一个方法: 返回结果: ...关于post请求,这里有个地方需要注意,api接口中,接收参数的地方一定要用...还有一点就是创建的WebApi默认用的是Restful风格,个人感觉这种风格用起来非常不...

    创建一个新的项目:(vs版本2019)

     

     创建一个空的项目,选择右侧的引用:webapi

     

    新建一个控制器 

     

    代码如下所示:

     

    调用第一个方法:

    返回结果:

     

    调用第二个方法:

     

    返回结果:

     

    调用第三个方法:

     返回结果:

     

    调用第四个方法:

     返回结果:

     

    关于post请求,这里有个地方需要注意,api接口方法中,接收参数的地方一定要用模型对象(类)来接收,如果用变量(string Id,string Name),这样写会出问题,而且有很多坑。

     

    还有一点就是创建的WebApi默认用的是Restful风格,个人感觉这种风格用起来非常不方便,所以将WebApiConfig.cs文件中的路由模式更改为根据控制器名称和方法名的方式匹配。

    展开全文
  • ASP.NET Web 应用开发技术(第二版) 课后答案 喻钧 web应用程序
  • asp.net开发实例

    2013-03-27 10:48:02
    web开发实例教程 案例下载 网页登陆页面设计
  • asp.net网页设计实例

    2012-07-22 01:23:23
    asp.net网页设计实例,想进行web开发的朋友可参考参考。
  • ASP .NET ASP .NET 架構 ASP .NET Page 架構 ASP .NET Server Control ASP .NET Data Access ASP .NET Configuration ASP .NET Localization ASP .NET Cache Service ASP .NET Deployment Web Service ......
  • WEB 2.0 开发ASP.NET 实例

    2009-11-16 08:28:44
    WEB 2.0 开发ASP.NET 实例
  • ch01ASP.NET与 VWD 2008 开发平台.ppt ch02XHTML基础知识.ppt ch03ASP.NET基础知识.ppt ch04ASP.NET服务器控件 .ppt ch05页面切换与导航 .ppt ch06页面布局.ppt ch07ADO.NET数据访问 .ppt ...ch12开发实例 .ppt
  • ASP.NET创建的WebService简单实例,实现了读取XML传递进来的参数,然后再返回XML格式数据
  • 软件介绍 ASP.NETWeb Service实例剖析中文版
  • ASP.NET WebAPI 示例

    2018-03-14 22:35:12
    ASP.NET WebAPI官方示例,包括基本使用的示例和自定义扩展的示例等
  • asp.net开发实战教程 ASP.NET软件工程师IT高端培训(BF-TECH3.0)- 风舞烟老师10年IT从业经验结晶 asp.net开发实战教程讲师介绍: 中国科技大学计算机专业,微软认证解决方案专家,10多年软件行业从业经验,...
  • ASP.NET 2.0网站开发实例教程 源码

    热门讨论 2013-04-17 12:18:05
    书中内容既包括了ASP.NET 2.0网站开发环境、ASP.NET 2.0基础、SQL Server 2005基础和ADO.NET数据访问等ASP.NET 2.0开发的必备知识,还包括了以微软经典案例构建的中文版的Personal Web Site Starter Kit(PWS)网站的...
  • 本书从实用的角度出发,详细介绍了利用ASP.NET开发Web应用程序、构建网络平台、访问后台数据库和配置服务端控件等内容,并通过实际应用中的经典案例来引导读者快速全面地掌握信息管理系统开发的思路、方法与技能。...
  • 主要为大家详细介绍了ASP.NET WebAPI连接数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,423
精华内容 22,569
关键字:

asp.netweb开发实例